Чтобы стандартный почтовый 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;
}
}
Комментарии
Комментариев пока нет.