Yii 1 почта используя STARTTLS

Чтобы стандартный почтовый Yii 1 клиент начал работать используя STARTTLS, нужно указать такие настройки:

'mail' => [
    'class' => 'ext.yii-mail.YiiMail',
    'transportType' => 'smtp',
    'transportOptions' => [
        'encryption' => 'tls',
        'host' => SMTP_ADDR,
        'port' => SMTP_PORT,
        'username'=> MAIL_LOGIN,
        'password'=> MAIL_PASSWORD,
        'streamOptions' => [
            'tls' => [
                'allow_self_signed' => true,
                'verify_peer' => false,
                'verify_peer_name' => false,
            ],
        ],
    ],
    'viewPath' => 'application.views.mail',
    'logging' => true,
    'dryRun' => false
],

streamOptions это stream_context_options про которые идет речь на stackoverflow

p.s. может кому-то пригодится моя обертка над YiiMailMessage:

<?php

/**
 * Класс для легкой и очевидной работы с почтовыми сообщениями
 */
class MailMessage extends \YiiMailMessage
{
    /**
     * @var \Swift_Mime_SimpleMessage
     */
    private $message = null;

    /**
     * @var string
     */
    private $charset;

    /**
     * @param string $subject
     * @param string $body
     * @param string $contentType
     * @param string|null $charset
     */
    public function __construct(
        $subject = MAIL_SUBJECT_DEFAULT,
        $body = null,
        $contentType = 'text/html',
        $charset = 'utf-8'
    )
    {
        parent::__construct($subject, $body, $contentType, $charset);
        $this->setFrom(MAIL_FROM_EMAIL_DEFAULT, MAIL_FROM_NAME_DEFAULT);
        $this->charset = $charset;
    }

    /**
     * @param array|string $addresses
     * @param string $name
     * @return self
     */
    public function setFrom($addresses, $name = null)
    {
        $this->message->setFrom($addresses, $name);
        return $this;
    }

    /**
     * @param array|string $addresses
     * @param string $name
     * @return self
     */
    public function setTo($addresses, $name = null)
    {
        $this->message->setTo($addresses, $name);
        return $this;
    }

    /**
     * @param \Swift_Mime_MimeEntity $entity
     * @return self
     */
    public function attach(\Swift_Mime_MimeEntity $entity)
    {
        $this->message->attach($entity);
        return $this;
    }

    /**
     * @param array $attachments
     * @return self
     */
    public function attachFilesByPath(array $attachments)
    {
        foreach($attachments as $attachmentsFilePath) {
            $this->message->attach(\Swift_Attachment::fromPath($attachmentsFilePath));
        }
        return $this;
    }

    /**
     * Кодировка письма
     * @return string
     */
    public function getCharset()
    {
        return $this->charset;
    }
}
Оцени публикацию:
  • 0,0
Оценили: 0


Предложения и пожелания:

 

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2019 YaPro.Ru

Лебеденко Николай Николаевич
Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter