Zend_Mail-Introduction.xml 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 19418 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.mail.introduction">
  5. <title>Introduction</title>
  6. <sect2 id="zend.mail.introduction.getting-started">
  7. <title>Pour commencer</title>
  8. <para>
  9. <classname>Zend_Mail</classname> fournit des fonctionnalités génériques pour
  10. écrire et envoyer des émail au format texte et <acronym>MIME</acronym>. Un émail peut-être envoyé avec
  11. <classname>Zend_Mail</classname> via le transporteur par défaut
  12. <classname>Zend_Mail_Transport_Sendmail</classname> ou via
  13. <classname>Zend_Mail_Transport_Smtp</classname>.
  14. </para>
  15. <example id="zend.mail.introduction.example-1">
  16. <title>Émail simple avec <classname>Zend_Mail</classname></title>
  17. <para>
  18. Un émail simple est composé d'un destinataire, d'un sujet, d'un message et
  19. d'un expéditeur. Pour envoyer ce genre de messages en utilisant
  20. <classname>Zend_Mail_Transport_Sendmail</classname>, vous pouvez faire comme ceci
  21. :
  22. </para>
  23. <programlisting language="php"><![CDATA[
  24. $mail = new Zend_Mail();
  25. $mail->setBodyText('Ceci est le texte du message.');
  26. $mail->setFrom('somebody@example.com', 'un expéditeur');
  27. $mail->addTo('somebody_else@example.com', 'un destinataire');
  28. $mail->setSubject('Sujet de test');
  29. $mail->send();
  30. ]]></programlisting>
  31. </example>
  32. <note>
  33. <title>Définitions minimales</title>
  34. <para>
  35. Pour envoyer un émail avec <classname>Zend_Mail</classname>, vous devez
  36. spécifier au moins un destinataire, un expéditeur (avec <methodname>setFrom()</methodname>), et
  37. un message (texte et/ou HTML).
  38. </para>
  39. </note>
  40. <para>
  41. Pour la plupart des attributs de l'émail, il y a des méthodes "get" pour lire les
  42. informations stockées dans l'objet mail. Pour plus de détails, merci de vous référer à
  43. la documentation de l'API. Une méthode spéciale est <methodname>getRecipients()</methodname>. Elle
  44. retourne un tableau avec toutes les adresses émail des destinataires qui ont été ajoutés
  45. avant l'appel de cette méthode.
  46. </para>
  47. <para>
  48. Pour des raisons de sécurité, <classname>Zend_Mail</classname> filtre tous les
  49. champs d'en-tête pour éviter tout problème d'injection d'en-têtes avec des caractères de
  50. nouvelles lignes (<code>\n</code>). Les guillemets doubles sont changés en guillemets
  51. simples et les crochets en parenthèses dans le nom des émetteurs et des destinataires.
  52. Si ces caractères sont dans l'adresse émail, ils sont enlevés.
  53. </para>
  54. <para>
  55. Vous pouvez aussi utiliser la plupart des méthodes de l'objet
  56. <classname>Zend_Mail</classname> via une interface fluide.
  57. </para>
  58. <programlisting language="php"><![CDATA[
  59. $mail = new Zend_Mail();
  60. $mail->setBodyText('Ceci est le texte du message.')
  61. ->setFrom('somebody@example.com', 'un expéditeur')
  62. ->addTo('somebody_else@example.com', 'un destinataire')
  63. ->setSubject('Sujet de test')
  64. ->send();
  65. ]]></programlisting>
  66. </sect2>
  67. <sect2 id="zend.mail.introduction.sendmail">
  68. <title>Configurer le transport sendmail par défaut</title>
  69. <para>
  70. Le transporteur par défaut pour une instance <classname>Zend_Mail</classname> est
  71. <classname>Zend_Mail_Transport_Sendmail</classname>. C'est essentiellement un paquet
  72. pour la fonction <acronym>PHP</acronym> <ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink>. Si
  73. vous souhaitez fournir des paramètres additionnels à la fonction <ulink
  74. url="http://php.net/mail"><methodname>mail()</methodname></ulink>, créez simplement une nouvelle
  75. instance du transporteur et fournissez vos paramètres au constructeur. La nouvelle
  76. instance du transporteur peut ainsi devenir le transporteur par défaut
  77. <classname>Zend_Mail</classname>, ou il peut être fourni à la méthode
  78. <methodname>send()</methodname> de <classname>Zend_Mail</classname>.
  79. </para>
  80. <example id="zend.mail.introduction.sendmail.example-1">
  81. <title>Fournir des paramètres additionnels au transporteur
  82. <classname>Zend_Mail_Transport_Sendmail</classname></title>
  83. <para>
  84. Cet exemple montre comment changer le Return-Path de la fonction <ulink
  85. url="http://php.net/mail"><methodname>mail()</methodname></ulink>.
  86. </para>
  87. <programlisting language="php"><![CDATA[
  88. $tr = new Zend_Mail_Transport_Sendmail('-freturn_to_me@example.com');
  89. Zend_Mail::setDefaultTransport($tr);
  90. $mail = new Zend_Mail();
  91. $mail->setBodyText('Ceci est le texte du message.');
  92. $mail->setFrom('somebody@example.com', 'un expéditeur');
  93. $mail->addTo('somebody_else@example.com', 'un destinataire');
  94. $mail->setSubject('TestSubject');
  95. $mail->send();
  96. ]]></programlisting>
  97. </example>
  98. <note>
  99. <title>Restrictions en mode Safe</title>
  100. <para>
  101. Les paramètres additionnels optionnels peuvent entraînés un échec de la
  102. fonction <ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink> si <acronym>PHP</acronym>
  103. fonctionne en mode safe.
  104. </para>
  105. </note>
  106. <warning>
  107. <title>Transport Sendmail et Windows</title>
  108. <para>
  109. Comme le spécifie le manuel PHP, la fonction <methodname>mail()</methodname> a des
  110. comportements différents sous Windows ou sur les systèmes de type *nix. Utiliser
  111. le transport Sendmail sous Windows ne fonctionnera pas conjointement avec
  112. <methodname>addBcc()</methodname>. La fonction <methodname>mail()</methodname>
  113. enverra vers le destinataire BCC de manière à ce que tous les destinataires
  114. puissent voir qu'il est destinataire&#160;!
  115. </para>
  116. <para>
  117. Ainsi si vous voulez utiliser BCC sur un serveur Windows, utilisez le transport
  118. SMTP pour l'envoi&#160;!
  119. </para>
  120. </warning>
  121. </sect2>
  122. </sect1>