File: Zend_Mail-Introduction.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (148 lines) | stat: -rw-r--r-- 6,653 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<?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>