| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.mail.introduction">
- <title>Einführung</title>
- <sect2 id="zend.mail.introduction.getting-started">
- <title>Beginnen</title>
- <para>
- <classname>Zend_Mail</classname> stellt verallgemeinerte Funktionalitäten zum Verfassen
- und Senden sowohl von Text E-Mails als auch von <acronym>MIME</acronym>-konformen
- mehrteiligen E-Mails bereit. Mails können mit <classname>Zend_Mail</classname> durch den
- Standardtransport <classname>Zend_Mail_Transport_Sendmail</classname> oder über
- <classname>Zend_Mail_Transport_Smtp</classname> versendet werden.
- </para>
- <example id="zend.mail.introduction.example-1">
- <title>Einfache E-Mail mit Zend_Mail</title>
- <para>
- Eine einfache E-Mail besteht aus einigen Empfängern, einem Betreff, einem Hauptteil
- und einem Versender. Um solch eine Mail durch Verwenden von
- <classname>Zend_Mail_Transport_Sendmail</classname> zu Verwenden muß folgendes getan
- werden:
- </para>
- <programlisting language="php"><![CDATA[
- $mail = new Zend_Mail();
- $mail->setBodyText('Dies ist der Text dieser E-Mail.');
- $mail->setFrom('somebody@example.com', 'Ein Versender');
- $mail->addTo('somebody_else@example.com', 'Ein Empfänger');
- $mail->setSubject('TestBetreff');
- $mail->send();
- ]]></programlisting>
- </example>
- <note>
- <title>Minimale Definitionen</title>
- <para>
- Um eine E-Mail mit <classname>Zend_Mail</classname> zu versenden, muß mindestens ein
- Empfänger, ein Versender (z.B., mit <methodname>setFrom()</methodname>) und ein
- Nachrichtentext (Text und/oder <acronym>HTML</acronym>) angeben werden.
- </para>
- </note>
- <para>
- Für die meisten Mailattribute gibt es "Get" Methoden, um die im Mailobjekt abgelegten
- Informationen zu lesen. Für weitere Einzelheiten kann in die <acronym>API</acronym>
- Dokumentation gesehen werden. Eine besondere Methode ist
- <methodname>getRecipients()</methodname>. Sie gibt ein Array mit allen E-Mail Adressen
- der Empfänger zurück, die vor dem Methodenaufruf hinzugefügt worden sind.
- </para>
- <para>
- Aus Sicherheitsgründen filtert <classname>Zend_Mail</classname> alle Felder des
- Nachrichtenkopfs, um eine "Header Injection" mittels Zeilenvorschubzeichen
- (<emphasis>\n</emphasis>) zu verhindern. Doppelte Anführungszeichen werden zu einzelnen
- gewechselt und runde Klammern zu eckigen sowohl im Namen des Senders als auch des
- Empfängers. Wenn die Marken in Emailadressen sind, werden diese Marken entfernt.
- </para>
- <para>
- Die meisten Methoden des <classname>Zend_Mail</classname> Objekts können mit dem
- bequemen Flüssigen Interface verwendet werden.
- </para>
- <programlisting language="php"><![CDATA[
- $mail = new Zend_Mail();
- $mail->setBodyText('Das ist der Text der Nachricht.')
- ->setFrom('somebody@example.com', 'Einige Sender')
- ->addTo('somebody_else@example.com', 'Einige Empfänger')
- ->setSubject('TestBetreff')
- ->send();
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.mail.introduction.sendmail">
- <title>Den standardmäßigen Sendmail Transport konfigurieren</title>
- <para>
- Der standard Transport für eine <classname>Zend_Mail</classname> Instanz ist
- <classname>Zend_Mail_Transport_Sendmail</classname>. Es ist notwendigerweise ein Wrapper
- für <acronym>PHP</acronym>'s <ulink
- url="http://php.net/mail"><methodname>mail()</methodname></ulink> Funktion. Wenn
- der <ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink> Funktion
- zusätzliche Parameter mitgegeben werden sollen muß einfach eine neue Transport Instanz
- erzeugt werden und die Parameter dem Konstruktor übergeben werden. Die neue Transport
- Instanz kann dann als standard <classname>Zend_Mail</classname> Transport handeln oder
- der <methodname>send()</methodname> Methode von <classname>Zend_Mail</classname>
- übergeben werden.
- </para>
- <example id="zend.mail.introduction.sendmail.example-1">
- <title>
- Zusätzliche Parameter einem Zend_Mail_Transport_Sendmail Transport übergeben
- </title>
- <para>
- Dieses Beispiel zeigt wie der Rückgabe-Pfad der <ulink
- url="http://php.net/mail"><methodname>mail()</methodname></ulink> Funktion
- geändert werden kann.
- </para>
- <programlisting language="php"><![CDATA[
- $tr = new Zend_Mail_Transport_Sendmail('-freturn_to_me@example.com');
- Zend_Mail::setDefaultTransport($tr);
- $mail = new Zend_Mail();
- $mail->setBodyText('Das ist ein Text der Mail.');
- $mail->setFrom('somebody@example.com', 'Einige Sender');
- $mail->addTo('somebody_else@example.com', 'Einige Empfänger');
- $mail->setSubject('TestBetreff');
- $mail->send();
- ]]></programlisting>
- </example>
- <note>
- <title>Safe Mode Einschränkungen</title>
- <para>
- Der zusätzliche optionale Parameter verursacht das die <ulink
- url="http://php.net/mail"><methodname>mail()</methodname></ulink> Funktion
- fehlschlägt wenn <acronym>PHP</acronym> im Safe Mode läuft.
- </para>
- </note>
- <warning>
- <title>Sendmail Transport und Windows</title>
- <para>
- Das Handbuch von <acronym>PHP</acronym> sagt aus dass die Methode
- <methodname>mail()</methodname> ein unterschiedliches Verhalten auf Windows und auf
- *nix basierten Systemen zeigt. Die Verwendung von Sendmail Transport wird auf
- Windows nicht in Verbindung mit <methodname>addBcc()</methodname> funktionieren. Die
- <methodname>mail()</methodname> Funktion sendet auf eine Art und Weise an den BCC
- Empfänger, das alle anderen Empfänger diesen als Empfänger sehen!
- </para>
- <para>
- Deswegen sollte man, wenn man BCC auf einem Windows Server verwenden will, den
- SMTP Transport für das Senden verwenden!
- </para>
- </warning>
- </sect2>
- </sect1>
|