如何在可下载产品的magento中以电子邮件附件的形式发送文件



我是Magento的新手。我在一个网站上工作,该网站出售可下载的产品。我的客户想要购买的产品应该通过附件中的电子邮件发送吗?目前,我正在localhost中开发,所以我不确定万磁电机是否真的通过电子邮件发送产品文件?我是否需要在配置中为此启用任何选项?


如果你想在本地主机上开发它,请记住,你必须设置邮件服务器或使用社区的一些解决方案,如下面的链接,通过gmail和其他方式发送:https://www.magentocommerce.com/magento-connect/smtp-pro-email-free-custom-smtp-email.html

您还可以将服务器配置为保存邮件而不发送。这样你就可以复习了。

关于如何通过电子邮件发送可下载的好文章:https://magento.stackexchange.com/questions/49511/how-can-i-get-only-the-downloadable-product-url-in-email-template

但是!!!请记住,最新的Magento使用队列发送电子邮件(由cron运行),所以如果您有这样的分发版(例如1.9+),您需要调整上面链接中的代码。

这里有两个解决方案:

禁止在订购后将电子邮件添加到队列。只需在"Mage_Core _Model_Email_Template"的"send()"方法中注释这部分代码:

//        if ($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue) {
/** @var $emailQueue Mage_Core_Model_Email_Queue */
/* $emailQueue = $this->getQueue();
$emailQueue->clearRecipients();
$emailQueue->setMessageBody($text);
$emailQueue->setMessageParameters(array(
'subject'           => $subject,
'return_path_email' => $returnPathEmail,
'is_plain'          => $this->isPlain(),
'from_email'        => $this->getSenderEmail(),
'from_name'         => $this->getSenderName(),
'reply_to'          => $this->getMail()->getReplyTo(),
'return_to'         => $this->getMail()->getReturnPath(),
))
->addRecipients($emails, $names, Mage_Core_Model_Email_Queue::EMAIL_TYPE_TO)
->addRecipients($this->_bccEmails, array(), Mage_Core_Model_Email_Queue::EMAIL_TYPE_BCC);
$emailQueue->addMessageToQueue();
return true;
}*/

因此,电子邮件将立即发送(请注意,如果你有非常大的营业额和峰值,可能会造成性能问题)

第二种方法是将附件的完整路径保存到表"core_email_queue"字段-"message_parameters"。您可以在上面的代码$emailQueue->setMessageParameters(中添加url到参数数组中。之后,您可以在"Mage_Core _Model_Email_Queue"的"send()"方法中处理它使用标准的"Zend Mail"方法-"createAttachment()"。下面的链接将对此部分进行更深入的解释。https://magento.stackexchange.com/questions/9652/magento-send-file-attachements-in-emails

希望它能帮助萨博迪。祝你今天愉快!!!

相关内容

  • 没有找到相关文章

最新更新