找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1515|回复: 0

[Magento] Magento如何设置用SMTP发送邮件?

[复制链接]
发表于 2012-9-30 00:08:48 | 显示全部楼层 |阅读模式
本帖最后由 小马哥 于 2012-9-30 00:12 编辑

Magento默认是用内置的sendmail来发送邮件的,这样发出去的邮件比较容易被认为是垃圾邮件而进入到收信人的垃圾邮件文件夹里面,建议设置SMTP发送邮件,这样可以大大降低发出去的邮件被认定为垃圾邮件的几率。那么magento怎样设置才能用SMTP发送邮件?具体方法如下:

首先登录magento后台,依次打开 System->Configuration->ADVANCED->System->Mail Sending Settings,在那里Disable Email Communications后面的下拉框中选No,Host和Port分别填SMTP主机地址和SMTP端口(这些如果不清楚请咨询邮箱服务商),然后点右上方的Save Config按钮。

然后就是修改代码,用FTP将/app/code/core/Mage/Core/Model/Email这个目录下面的文件Template.php下载到电脑上,然后用编辑器打开,找到如下几行代码:
  1. public function getMail()
  2.     {
  3.         if (is_null($this->_mail)) {
  4.             $this->_mail = new Zend_Mail('utf-8');
  5.         }
  6.         return $this->_mail;
  7.     }
复制代码
将这些代码替换成下面的:
  1. public function getMail()
  2.     {
  3.         if (is_null($this->_mail)) {
  4.             /* changes begin */
  5.            $my_smtp_host = Mage::getStoreConfig('system/smtp/host');
  6.            $my_smtp_port = Mage::getStoreConfig('system/smtp/port');
  7.            $config = array(
  8.                     'port' => $my_smtp_port,
  9.                     'auth' => 'login',
  10.                     'username' => 'email@domain.com',
  11.                     'password' => 'yourpassword'
  12.                 );
  13.             $transport = new Zend_Mail_Transport_Smtp($my_smtp_host, $config);
  14.             Zend_Mail::setDefaultTransport($transport);
  15.             /* Changes End */
  16.             $this->_mail = new Zend_Mail('utf-8');
  17.         }
  18.         return $this->_mail;
  19.     }
复制代码
email@domain.com换成您用来发送邮件的邮箱,yourpassword换成这个邮箱的密码,保存后上传到空间上替换掉原来的就可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|王牌互联

GMT+8, 2024-11-17 04:41 , Processed in 0.033820 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表