本帖最后由 小马哥 于 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下载到电脑上,然后用编辑器打开,找到如下几行代码:- public function getMail()
- {
- if (is_null($this->_mail)) {
- $this->_mail = new Zend_Mail('utf-8');
- }
- return $this->_mail;
- }
复制代码 将这些代码替换成下面的:- public function getMail()
- {
- if (is_null($this->_mail)) {
- /* changes begin */
- $my_smtp_host = Mage::getStoreConfig('system/smtp/host');
- $my_smtp_port = Mage::getStoreConfig('system/smtp/port');
- $config = array(
- 'port' => $my_smtp_port,
- 'auth' => 'login',
- 'username' => 'email@domain.com',
- 'password' => 'yourpassword'
- );
- $transport = new Zend_Mail_Transport_Smtp($my_smtp_host, $config);
- Zend_Mail::setDefaultTransport($transport);
- /* Changes End */
- $this->_mail = new Zend_Mail('utf-8');
- }
- return $this->_mail;
- }
复制代码 email@domain.com换成您用来发送邮件的邮箱,yourpassword换成这个邮箱的密码,保存后上传到空间上替换掉原来的就可以了。 |