Zend_Mail-Introduction.xml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15215 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.mail.introduction">
  5. <title>Einführung</title>
  6. <sect2 id="zend.mail.introduction.getting-started">
  7. <title>Beginnen</title>
  8. <para>
  9. <classname>Zend_Mail</classname> stellt verallgemeinerte Funktionalitäten zum Verfassen und Senden
  10. sowohl von Text E-Mails als auch von MIME-konformen mehrteiligen E-Mails bereit. Mails
  11. können mit <classname>Zend_Mail</classname> durch den Standardtransport <classname>Zend_Mail_Transport_Sendmail</classname>
  12. oder über <classname>Zend_Mail_Transport_Smtp</classname> versendet werden.
  13. </para>
  14. <example id="zend.mail.introduction.example-1">
  15. <title>Einfache E-Mail mit Zend_Mail</title>
  16. <para>
  17. Eine einfache E-Mail besteht aus einigen Empfängern, einem Betreff, einem Hauptteil und
  18. einem Versender. Um solch eine Mail durch Verwenden von <classname>Zend_Mail_Transport_Sendmail</classname>
  19. zu Verwenden muß folgendes getan werden:
  20. </para>
  21. <programlisting role="php"><![CDATA[
  22. $mail = new Zend_Mail();
  23. $mail->setBodyText('Dies ist der Text dieser E-Mail.');
  24. $mail->setFrom('somebody@example.com', 'Ein Versender');
  25. $mail->addTo('somebody_else@example.com', 'Ein Empfänger');
  26. $mail->setSubject('TestBetreff');
  27. $mail->send();
  28. ]]></programlisting>
  29. </example>
  30. <note>
  31. <title>Minimale Definitionen</title>
  32. <para>
  33. Um eine E-Mail mit <classname>Zend_Mail</classname> zu versenden, muß mindestens ein Empfänger,
  34. ein Versender (z.B., mit <code>setFrom()</code>) und ein Nachrichtentext (Text und/oder
  35. HTML) angeben werden.
  36. </para>
  37. </note>
  38. <para>
  39. Für die meisten Mailattribute gibt es "Get" Methoden, um die im Mailobjekt abgelegten
  40. Informationen zu lesen. Für weitere Einzelheiten kann in die API Dokumentation gesehen werden. Eine
  41. besondere Methode ist <code>getRecipients()</code>. Sie gibt ein Array mit allen E-Mail
  42. Adressen der Empfänger zurück, die vor dem Methodenaufruf hinzugefügt worden sind.
  43. </para>
  44. <para>
  45. Aus Sicherheitsgründen filtert <classname>Zend_Mail</classname> alle Felder des Nachrichtenkopfs, um
  46. eine "Header Injection" mittels Zeilenvorschubzeichen (<code>\n</code>) zu verhindern.
  47. Doppelte Anführungszeichen werden zu einzelnen gewechselt und runde Klammern zu eckigen sowohl im
  48. Namen des Senders als auch des Empfängers. Wenn die Marken in Emailadressen sind, werden diese
  49. Marken entfernt.
  50. </para>
  51. <para>
  52. Die meisten Methoden des <classname>Zend_Mail</classname> Objekts können mit dem bequemen Flüssigen Interface verwendet werden.
  53. </para>
  54. <programlisting role="php"><![CDATA[
  55. $mail = new Zend_Mail();
  56. $mail->setBodyText('Das ist der Text der Nachricht.')
  57. ->setFrom('somebody@example.com', 'Einige Sender')
  58. ->addTo('somebody_else@example.com', 'Einige Empfänger')
  59. ->setSubject('TestBetreff')
  60. ->send();
  61. ]]></programlisting>
  62. </sect2>
  63. <sect2 id="zend.mail.introduction.sendmail">
  64. <title>Den standardmäßigen Sendmail Transport konfigurieren</title>
  65. <para>
  66. Der standard Transport für eine <classname>Zend_Mail</classname> Instanz ist
  67. <classname>Zend_Mail_Transport_Sendmail</classname>. Es ist notwendigerweise ein Wrapper für PHP's
  68. <ulink url="http://php.net/mail"><code>mail()</code></ulink> Funktion. Wenn der
  69. <ulink url="http://php.net/mail"><code>mail()</code></ulink> Funktion zusätzliche Parameter
  70. mitgegeben werden sollen muß einfach eine neue Transport Instanz erzeugt werden und die Parameter
  71. dem Konstruktor übergeben werden. Die neue Transport Instanz kann dann als standard
  72. <classname>Zend_Mail</classname> Transport handeln oder der <code>send()</code> Methode von <classname>Zend_Mail</classname>
  73. übergeben werden.
  74. </para>
  75. <example id="zend.mail.introduction.sendmail.example-1">
  76. <title>Zusätzliche Parameter einem Zend_Mail_Transport_Sendmail Transport übergeben</title>
  77. <para>
  78. Dieses Beispiel zeigt wie der Rückgabe-Pfad der
  79. <ulink url="http://php.net/mail"><code>mail()</code></ulink> Funktion geändert werden kann.
  80. </para>
  81. <programlisting role="php"><![CDATA[
  82. $tr = new Zend_Mail_Transport_Sendmail('-freturn_to_me@example.com');
  83. Zend_Mail::setDefaultTransport($tr);
  84. $mail = new Zend_Mail();
  85. $mail->setBodyText('Das ist ein Text der Mail.');
  86. $mail->setFrom('somebody@example.com', 'Einige Sender');
  87. $mail->addTo('somebody_else@example.com', 'Einige Empfänger');
  88. $mail->setSubject('TestBetreff');
  89. $mail->send();
  90. ]]></programlisting>
  91. </example>
  92. <note>
  93. <title>Safe Mode Einschränkungen</title>
  94. <para>
  95. Der zusätzliche optionale Parameter verursacht das die
  96. <ulink url="http://php.net/mail"><code>mail()</code></ulink> Funktion fehlschlägt wenn PHP im
  97. Safe Mode läuft.
  98. </para>
  99. </note>
  100. </sect2>
  101. </sect1>
  102. <!--
  103. vim:se ts=4 sw=4 et:
  104. -->