<?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>
