Here we learn how to send mail using our smtp detail in magento2
For this we need to override mageto \Magento\Framework\Mail\Transport class by your custom model class
We can do it in two step
1# For override we need to write code in module di.xml file at location app/code/NameSpace/ModuleName/etc
<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <!-- for override magento default Transport class with our custom module model--> <preference for="\Magento\Framework\Mail\Transport" type="NameSpace\ModuleName\Model\Transport"/> </config>
2# Now we’ll define our Transport model in our custom module
<?php /** * Mail Transport */ namespace NameSpace\ModuleName\Model; class Transport extends \Zend_Mail_Transport_Smtp implements \Magento\Framework\Mail\TransportInterface { /** * @var \Magento\Framework\Mail\MessageInterface */ protected $_message; /** * @param MessageInterface $message * @param null $parameters * @throws \InvalidArgumentException */ public function __construct(\Magento\Framework\Mail\MessageInterface $message) { if (!$message instanceof \Zend_Mail) { throw new \InvalidArgumentException('The message should be an instance of \Zend_Mail'); } $smtpHost= 'xxx.xxxx.xxx';//your smtp host '; $smtpConf = [ 'auth' => 'login',//auth type 'tsl' => 'tsl', 'port' => '587', 'username' => 'xxxx@xxxxx.xxx',//smtm user name 'password' => 'xxxxxxxxxxxxxx'//smtppassword ]; parent::__construct($smtpHost, $smtpConf); $this->_message = $message; } /** * Send a mail using this transport * @return void * @throws \Magento\Framework\Exception\MailException */ public function sendMessage() { try { parent::send($this->_message); } catch (\Exception $e) { throw new \Magento\Framework\Exception\MailException(new \Magento\Framework\Phrase($e->getMessage()), $e); } } }
Now all mail goes from your magento 2 instance using your smtp server 🙂
一个 mailsmtpapp 小插件
https://github.com/weicot/magento2-custom-smtp.git
转载请注明:(●--●) Hello.My Weicot » Magento 2 使用 Smtp 发送邮件 Magento 2- Send Mail Using Your Smtp Server