Zend_Mail-Introduction.xml 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <sect1 id="zend.mail.introduction">
  4. <title>Введение</title>
  5. <sect2 id="zend.mail.introduction.getting-started">
  6. <title>Начало работы</title>
  7. <para>
  8. <classname>Zend_Mail</classname> предоставляет обобщенный
  9. функционал для формирования и отправки как текстовых, так и
  10. <acronym>MIME</acronym>-сообщений электронной почты.
  11. Сообщения могут отправляться через
  12. <classname>Zend_Mail_Transport_Sendmail</classname>
  13. (используется по умолчанию) или через
  14. <classname>Zend_Mail_Transport_Smtp</classname>.
  15. </para>
  16. <example id="zend.mail.introduction.example-1">
  17. <title>Простое сообщение электронной почты</title>
  18. <para>
  19. Простое сообщение электронной почты состоит из нескольких
  20. получателей, заголовка сообщения, тела сообщения и отправителя.
  21. Чтобы отправить такое сообщение, используя
  22. <classname>Zend_Mail_Transport_Sendmail</classname>,
  23. сделайте следующее:
  24. </para>
  25. <programlisting language="php"><![CDATA[
  26. $mail = new Zend_Mail();
  27. $mail->setBodyText('This is the text of the mail.');
  28. $mail->setFrom('somebody@example.com', 'Some Sender');
  29. $mail->addTo('somebody_else@example.com', 'Some Recipient');
  30. $mail->setSubject('TestSubject');
  31. $mail->send();
  32. ]]></programlisting>
  33. </example>
  34. <note>
  35. <title>Минимально необходимые определения</title>
  36. <para>
  37. Для того, чтобы отправить сообщение через
  38. <classname>Zend_Mail</classname>, вы должны
  39. указать как минимум одного получателя, отправителя (например,
  40. с помощью <methodname>setFrom()</methodname>) и тело сообщения
  41. (текстовое и/или в формате HTML).
  42. </para>
  43. </note>
  44. <para>
  45. Для большинства атрибутов сообщений электронной почты есть методы
  46. "get" для чтения информации, сохраненной в объекте сообщения.
  47. За более подробной информацией обратитесь к
  48. <acronym>API</acronym>-документации. К примеру, метод
  49. <methodname>getRecipients()</methodname> возвращает массив с
  50. адресами электронной почты получателей, в порядке их добавления.
  51. </para>
  52. <para>
  53. В целях безопасности <classname>Zend_Mail</classname> фильтрует все
  54. содержимое заголовков для предотвращения инъекций в заголовки с
  55. использованием символов новой строки (<code>\n</code>).
  56. В имени отправителя и именах получателей двойные кавычки заменяются
  57. на одинарные, а угловые скобки на квадратные. Если эти символы
  58. находятся в адресах электронной почты, то они удаляются.
  59. </para>
  60. </sect2>
  61. <sect2 id="zend.mail.introduction.sendmail">
  62. <title>Конфигурирование транспорта, используемого по умолчанию</title>
  63. <para>
  64. Для экземпляра <classname>Zend_Mail</classname> по умолчанию
  65. используется <classname>Zend_Mail_Transport_Sendmail</classname>.
  66. По существу он является оберткой к <acronym>PHP</acronym>-функции
  67. <ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink>.
  68. Если вы хотите передавать функции
  69. <ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink>
  70. дополнительные параметры, то просто создайте новый экземпляр
  71. транспорта и передайте свои параметры его конструктору.
  72. После этого новый экземпляр транспорта может выступать как
  73. используемый по умолчанию транспорт для
  74. <classname>Zend_Mail</classname>, либо он может быть передан
  75. методу <methodname>send()</methodname> класса
  76. <classname>Zend_Mail</classname>.
  77. </para>
  78. <example id="zend.mail.introduction.sendmail.example-1">
  79. <title>Передача дополнительных параметров транспорту Zend_Mail_Transport_Sendmail</title>
  80. <para>
  81. Этот пример демонстрирует, как изменить заголовок Return-Path
  82. для функции <ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink>.
  83. </para>
  84. <programlisting language="php"><![CDATA[
  85. $tr = new Zend_Mail_Transport_Sendmail('-freturn_to_me@example.com');
  86. Zend_Mail::setDefaultTransport($tr);
  87. $mail = new Zend_Mail();
  88. $mail->setBodyText('This is the text of the mail.');
  89. $mail->setFrom('somebody@example.com', 'Some Sender');
  90. $mail->addTo('somebody_else@example.com', 'Some Recipient');
  91. $mail->setSubject('TestSubject');
  92. $mail->send();
  93. ]]></programlisting>
  94. </example>
  95. <note>
  96. <title>Ограничения безопасного режима</title>
  97. <para>
  98. Применение дополнительных параметров приведет к отказу в
  99. выполнении функции
  100. <ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink>,
  101. если <acronym>PHP</acronym> работает в безопасном режиме
  102. (safe mode).
  103. </para>
  104. </note>
  105. </sect2>
  106. </sect1>
  107. <!--
  108. vim:se ts=4 sw=4 et:
  109. -->