Инструменты пользователя

Инструменты сайта


yii:yii2:swiftmailer

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
yii:yii2:swiftmailer [2021/07/28 16:21]
werwolf [Прикрепление Динамического Контента]
yii:yii2:swiftmailer [2023/01/12 12:18] (текущий)
Строка 1: Строка 1:
-====== ​Создание сообщений ​======+====== ​SwiftMailer ​======
  
 Создание сообщений в Swift Mailer выполняется с помощью различных объектов MIME, предоставляемых библиотекой. Сложные сообщения могут быть быстро созданы с очень небольшими усилиями. Создание сообщений в Swift Mailer выполняется с помощью различных объектов MIME, предоставляемых библиотекой. Сложные сообщения могут быть быстро созданы с очень небольшими усилиями.
Строка 214: Строка 214:
 <​note>​ <​note>​
 Если вы обычно записываете файл на диск в любом случае,​ вы должны просто прикрепить его, ''​Swift_Attachment::​fromPath()''​так как это будет использовать меньше памяти. Если вы обычно записываете файл на диск в любом случае,​ вы должны просто прикрепить его, ''​Swift_Attachment::​fromPath()''​так как это будет использовать меньше памяти.
-</code>+</note>
 ==== Изменение диспозиции ==== ==== Изменение диспозиции ====
  
Строка 232: Строка 232:
 </​code>​ </​code>​
  
-Примечание+<​note>​
  
 Если вы попытаетесь создать встроенное вложение для не отображаемого типа файла, такого как ZIP-файл,​ почтовый клиент должен просто представить вложение как обычное. Если вы попытаетесь создать встроенное вложение для не отображаемого типа файла, такого как ZIP-файл,​ почтовый клиент должен просто представить вложение как обычное.
 +</​note>​
 ==== Встраивание Встроенных медиафайлов ==== ==== Встраивание Встроенных медиафайлов ====
  
Строка 290: Строка 290:
 </​code>​ </​code>​
  
-Примечание 
  
 +<note tip>
 ''​Swift_Image''​ и ''​Swift_EmbeddedFile''​являются просто псевдонимами друг друга. ''​Swift_Image''​ существует для семантических целей. ''​Swift_Image''​ и ''​Swift_EmbeddedFile''​являются просто псевдонимами друг друга. ''​Swift_Image''​ существует для семантических целей.
 +</​note>​
  
-Примечание 
  
 +<​note>​
 Вы можете вставлять файлы в два этапа, если хотите. Просто захватите возвращаемое значение ''​embed()''​переменной in и используйте его в качестве ''​src''​атрибута:​ Вы можете вставлять файлы в два этапа, если хотите. Просто захватите возвращаемое значение ''​embed()''​переменной in и используйте его в качестве ''​src''​атрибута:​
 +</​note>​
  
  
- +<​code ​php>
-<​code>​+
 // If placing the embed() code inline becomes cumbersome // If placing the embed() code inline becomes cumbersome
 // it's easy to do this in two steps // it's easy to do this in two steps
Строка 345: Строка 346:
 </​code>​ </​code>​
  
-Примечание +<note tip>
 ''​Swift_Image''​ и ''​Swift_EmbeddedFile''​являются просто псевдонимами друг друга. ''​Swift_Image''​ существует для семантических целей. ''​Swift_Image''​ и ''​Swift_EmbeddedFile''​являются просто псевдонимами друг друга. ''​Swift_Image''​ существует для семантических целей.
 +</​note>​
  
-Примечание 
  
 +<​note>​
 Вы можете вставлять файлы в два этапа, если хотите. Просто захватите возвращаемое значение ''​embed()''​переменной in и используйте его в качестве ''​src''​атрибута:​ Вы можете вставлять файлы в два этапа, если хотите. Просто захватите возвращаемое значение ''​embed()''​переменной in и используйте его в качестве ''​src''​атрибута:​
 +</​note>​
  
 <code php> <code php>
Строка 450: Строка 451:
 </​code>​ </​code>​
  
-Примечание +<​note>​
 Многократные вызовы ''​setTo()''​не добавят новых получателей-каждый вызов переопределяет предыдущие вызовы. Если вы хотите итеративно добавлять получателей,​ используйте этот ''​addTo()''​метод:​ Многократные вызовы ''​setTo()''​не добавят новых получателей-каждый вызов переопределяет предыдущие вызовы. Если вы хотите итеративно добавлять получателей,​ используйте этот ''​addTo()''​метод:​
 +</​note>​
  
 <code php> <code php>
Строка 483: Строка 483:
 </​code>​ </​code>​
  
-Примечание +<​note>​
 Многократные вызовы ''​setCc()''​не добавят новых получателей-каждый вызов переопределяет предыдущие вызовы. Если вы хотите итеративно добавить Cc: recipients, используйте этот ''​addCc()''​метод:​ Многократные вызовы ''​setCc()''​не добавят новых получателей-каждый вызов переопределяет предыдущие вызовы. Если вы хотите итеративно добавить Cc: recipients, используйте этот ''​addCc()''​метод:​
 +</​note>​
  
 <code php> <code php>
Строка 515: Строка 515:
 </​code>​ </​code>​
  
-Примечание +<​note>​
 Многократные вызовы ''​setBcc()''​не добавят новых получателей-каждый вызов переопределяет предыдущие вызовы. Если вы хотите итеративно добавить Bcc: recipients, используйте этот ''​addBcc()''​метод:​ Многократные вызовы ''​setBcc()''​не добавят новых получателей-каждый вызов переопределяет предыдущие вызовы. Если вы хотите итеративно добавить Bcc: recipients, используйте этот ''​addBcc()''​метод:​
 +</​note>​
  
 <code php> <code php>
Строка 526: Строка 525:
 </​code>​ </​code>​
  
 +
 +<note important>​
 Интернационализированные Адреса Электронной Почты Интернационализированные Адреса Электронной Почты
  
Строка 531: Строка 532:
  
 RFC 6531 ввел расширение SMTP, SMTPUTF8, которое позволяет использовать символы,​ отличные от ASCII, в адресах электронной почты с обеих сторон знака@. Для отправки на такие адреса ваш исходящий SMTP-сервер должен поддерживать расширение SMTPUTF8. Вы должны использовать кодировщик ''​Swift_AddressEncoder_Utf8AddressEncoder''​адресов и включить обработчик ''​Swift_Transport_Esmtp_SmtpUtf8Handler''​расширений SMTP: RFC 6531 ввел расширение SMTP, SMTPUTF8, которое позволяет использовать символы,​ отличные от ASCII, в адресах электронной почты с обеих сторон знака@. Для отправки на такие адреса ваш исходящий SMTP-сервер должен поддерживать расширение SMTPUTF8. Вы должны использовать кодировщик ''​Swift_AddressEncoder_Utf8AddressEncoder''​адресов и включить обработчик ''​Swift_Transport_Esmtp_SmtpUtf8Handler''​расширений SMTP:
 +</​note>​
 <code php> <code php>
 $smtpUtf8 = new Swift_Transport_Esmtp_SmtpUtf8Handler();​ $smtpUtf8 = new Swift_Transport_Esmtp_SmtpUtf8Handler();​
Строка 561: Строка 562:
 ''​From:''​Адреса видны в заголовках сообщений и будут видны получателям. ''​From:''​Адреса видны в заголовках сообщений и будут видны получателям.
  
-Примечание +<​note>​
 Если вы установили несколько ''​From:''​адресов,​ то вы абсолютно должны установить ''​Sender:''​адрес,​ чтобы указать,​ кто физически отправил сообщение. Если вы установили несколько ''​From:''​адресов,​ то вы абсолютно должны установить ''​Sender:''​адрес,​ чтобы указать,​ кто физически отправил сообщение.
 +</​note>​
  
 <code php> <code php>
Строка 588: Строка 588:
 Этот адрес будет использоваться,​ ''​Return-Path:''​если не указано иное. Этот адрес будет использоваться,​ ''​Return-Path:''​если не указано иное.
  
-Примечание +<​note>​
 Если вы установили несколько ''​From:''​адресов,​ то вы абсолютно должны установить ''​Sender:''​адрес,​ чтобы указать,​ кто физически отправил сообщение. Если вы установили несколько ''​From:''​адресов,​ то вы абсолютно должны установить ''​Sender:''​адрес,​ чтобы указать,​ кто физически отправил сообщение.
 +</​note>​
  
 Вы не должны устанавливать более одного адреса отправителя на сообщение,​ потому что это не возможно для более чем одного человека,​ чтобы отправить одно сообщение:​ Вы не должны устанавливать более одного адреса отправителя на сообщение,​ потому что это не возможно для более чем одного человека,​ чтобы отправить одно сообщение:​
Строка 702: Строка 702:
 При открытии письма,​ если почтовый клиент его поддерживает , на этот адрес будет отправлено уведомление. При открытии письма,​ если почтовый клиент его поддерживает , на этот адрес будет отправлено уведомление.
  
-Примечание +<note tip>
 Чтение квитанций не будет работать для большинства получателей,​ так как многие почтовые клиенты автоматически отключают их. Те клиенты,​ которые отправят квитанцию на чтение,​ сообщат пользователю,​ что она была запрошена. Чтение квитанций не будет работать для большинства получателей,​ так как многие почтовые клиенты автоматически отключают их. Те клиенты,​ которые отправят квитанцию на чтение,​ сообщат пользователю,​ что она была запрошена.
 +</​note>​
 ===== Настройка набора символов ===== ===== Настройка набора символов =====
  
Строка 764: Строка 763:
 Строки,​ длина которых превышает указанную длину строки,​ будут заключены между словами. Строки,​ длина которых превышает указанную длину строки,​ будут заключены между словами.
  
-Примечание 
  
 +<note important>​
 Вы никогда не должны устанавливать максимальную длину более 1000 символов в соответствии с RFC 2822. Это может привести к неопределенным побочным эффектам,​ таким как усечение частей вашего сообщения при его передаче между SMTP-серверами. Вы никогда не должны устанавливать максимальную длину более 1000 символов в соответствии с RFC 2822. Это может привести к неопределенным побочным эффектам,​ таким как усечение частей вашего сообщения при его передаче между SMTP-серверами.
 +</​note>​
 ===== Установка приоритета сообщения ===== ===== Установка приоритета сообщения =====
  
Строка 789: Строка 788:
 // Or use the constant to be more explicit // Or use the constant to be more explicit
 $message->​setPriority(Swift_Mime_SimpleMessage::​PRIORITY_HIGH);​ $message->​setPriority(Swift_Mime_SimpleMessage::​PRIORITY_HIGH);​
 +</​code>​
 +
 +====передать переменную в шаблон====
 +
 +<code php>
 +Yii::​$app->​mail
 +    ->​compose(['​html'​ => '​layouts/​html2'​],​ ['​content'​ => $content])
 +    ->​setFrom(['​noreply@mailer.com'​ => '​Mailer'​])
 +</​code>​
 +
 +<code html>
 +<​body>​
 +    <?php $this->​beginBody() ?>
 +    <?= $content ?>
 +    <?php $this->​endBody() ?>
 +</​body>​
 </​code>​ </​code>​
yii/yii2/swiftmailer.1627478489.txt.gz · Последние изменения: 2023/01/12 12:16 (внешнее изменение)