【轉】Prestashop SMTP模式發送郵件客戶郵件(聯絡我們頁面)收到不的解決辦法

來源:互聯網
上載者:User

標籤:

Prestashop 一般預設使用 mail 函數發送郵件,郵件發送的IP地址就是伺服器或者共用空間的IP地址。共用空間上面的網站很多,可能存在發送垃圾郵件的網站,導致共用空間的IP地址被其 他郵件服務商(gmail、hotmail等等)加入黑名單,使用mail發送的郵件全部不能夠發送成功。

更換使用第三方郵件來發送郵件,Prestashop 後台設定的發送郵件模式更換成SMTP。

經過測試發現:使用SMTP發送郵件,當寄件者為非SMTP賬戶郵箱時,發送郵件成功,但是收件者收不到郵件。

聯絡我們(contact us)頁面發送郵件給網站管理者,寄件者為客戶的郵箱,這樣的郵件都收不到。我的訂單頁面也存在這種問題。

如果設定寄件者郵箱為SMTP賬戶郵箱,能夠正常收到郵件。從網站後台給客戶發送郵件,客戶都能夠收到郵件。從後台發送的郵件,寄件者為SMTP賬戶郵箱。

Magento開發人員也許考慮到這個問題,他們給出了很好的解決方案。Magento聯絡我們頁面,客戶發送的郵件,寄件者就是SMTP賬戶郵箱,但是回複收件者郵箱是客戶郵箱。

綜合考慮上面的情況,只能夠採用Magento的那種郵件處理模式來解決問題。寄件者設定為SMTP賬戶郵箱,回複郵箱設定成客戶郵箱。

找到Prestashop classes/Mail.php 檔案,修改地方如下:

        // 102-104 行之間修改代碼        // $from_name is not that important, no need to die if it is not valid        if (!isset($from_name) || !Validate::isMailName($from_name))            $from_name = $configuration[‘PS_SHOP_NAME‘];        if (!Validate::isMailName($from_name))            $from_name = null;        // 設定回複郵箱為客戶郵箱        $email_reply_to = $from;        // 設定寄件者郵箱為SMTP賬戶郵箱        $from = $configuration[‘PS_SHOP_EMAIL‘];        // It would be difficult to send an e-mail if the e-mail is not valid, so this time we can die if there is a problem        if (!is_array($to) && !Validate::isEmail($to))        {            Tools::dieOrLog(Tools::displayError(‘Error: parameter "to" is corrupted‘), $die);            return false;        }
// 256-264 行代碼修改        /* Create mail and attach differents parts */$message = new Swift_Message(‘[‘.Configuration::get(‘PS_SHOP_NAME‘, null, null, $id_shop).‘] ‘.$subject);$message->setCharset(‘utf-8‘);        // 設定回複者郵箱為客戶郵箱        $message->setReplyTo($email_reply_to);/* Set Message-ID - getmypid() is blocked on some hosting */$message->setId(Mail::generateId());$message->headers->setEncoding(‘Q‘);

 上面的解決方案暫時適合於Prestashop 1.5.6.1,其他高版本是否修複這個漏洞,暫不清楚。

轉載自:http://www.phpmarker.com/388.html

 

【轉】Prestashop SMTP模式發送郵件客戶郵件(聯絡我們頁面)收到不的解決辦法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.