最新消息:觉得本站不错的话 记得收藏哦 博客内某些功能仅供测试 讨论群:135931704 快养不起小站了 各位有闲钱就打赏下把 My Email weicots#gmail.com Please replace # with @

Magento 2 使用 Smtp 发送邮件 Magento 2- Send Mail Using Your Smtp Server

Magento 插件整理 ajiang-tuzi 6251浏览

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

蜀ICP备15020253号-1