Zend Framework - E-Mail-Verwaltung
Das Zend Framework bietet eine separate Komponente namens zend-mailum E-Mail-Nachrichten zu senden. Die zend-mail-Komponente bietet auch die Möglichkeit, E-Mail-Nachrichten mit Anhängen im Text- und HTML-Format zu lesen und zu schreiben. Das Senden einer E-Mail in Zend ist viel einfacher und einfacher zu konfigurieren.
Lassen Sie uns in diesem Kapitel die E-Mail-Konzepte, Grundeinstellungen, erweiterten Einstellungen wie SMTP-Transport usw. durchgehen.
Installieren Sie die Mail-Komponente
Die Mail-Komponente kann mit dem folgenden Composer-Befehl installiert werden.
composer require zendframework/zend-mail
Grundlegende E-Mail-Konfiguration
Eine einfache E-Mail besteht aus einem oder mehreren Empfängern, einem Betreff, einem Textkörper und einem Absender. Zend bietetZend\Mail\MessageKlasse, um eine neue E-Mail-Nachricht zu erstellen. So senden Sie eine E-Mail mit demzend-mailmüssen Sie mindestens einen Empfänger sowie einen Nachrichtentext angeben.
Der Teilcode zum Erstellen einer neuen E-Mail-Nachricht lautet wie folgt:
use Zend\Mail;
$mail = new Mail\Message();
$mail->setSubject('Zend email sample');
$mail->setBody('This is content of the mail message');
$mail->setFrom('[email protected]', "sender-name");
$mail->addTo('[email protected]', "recipient-name");
Zend bietet die Klasse Zend \ Mail \ Sendmail zum Senden der E-Mail-Nachricht. Sendmail verwendet die native PHP-Mail-Funktion, mail Um die Mail-Nachricht zu senden, können wir die Transportschicht mithilfe der PHP-Konfigurationsdatei konfigurieren.
Die teilweise Codierung mit Sendmail lautet wie folgt:
$transport = new Mail\Transport\Sendmail();
$transport->send($mail);
Das zend-mail bietet viele Transportschichten und erfordert möglicherweise viele zusätzliche Parameter wie Benutzername, Passwort usw.
E-Mail-Verwaltungsmethoden
Einige der bemerkenswerten E-Mail-Verwaltungsmethoden sind wie folgt:
isValid - Nachrichten ohne 'Von'-Adresse sind ungültig.
isValid() : bool
setEncoding - Stellen Sie die Nachrichtenkodierung ein.
setEncoding(string $encoding) : void
getEncoding - Holen Sie sich die Nachrichtenkodierung.
getEncoding() : string
setHeaders - Überschriften verfassen.
setHeaders(Zend\Mail\Headers $headers) : void
getHeaders - Zugriff auf die Headersammlung.
getHeaders() : Zend\Mail\Headers
setFrom- Von Adressen setzen (überschreiben). Es enthält ein Schlüssel / Wert-Paar, wobei der Schlüssel der vom Menschen lesbare Name und der Wert die E-Mail-Adresse ist.
setFrom(
string|AddressInterface|array|AddressList|Traversable $emailOrAddressList,
string|null $name
) : void
addFrom - Fügen Sie eine Absenderadresse hinzu.
addFrom(
string|AddressInterface|array|AddressList|Traversable $emailOrAddressOrList,
string|null $name
) : void
getFrom - Liste der Absender abrufen.
getFrom() : AddressList
setTo - Overwrite the address list in the To recipients.
setTo(
string|AddressInterface|array|AddressList|Traversable $emailOrAddressList,
null|string $name
) : void
setSubject - Legen Sie den Header-Wert für den Betreff der Nachricht fest.
setSubject(string $subject) :void
setBody - Stellen Sie den Nachrichtentext ein.
setBody(null|string|Zend\Mime\Message|object $body) : void
SMTP-Transportschicht
Das zend-mail bietet Optionen zum Senden einer E-Mail über den SMTP-Server über das Zend\Mail\Transport\Smtpclass. Es ist wieSendmail Es stehen jedoch einige zusätzliche Optionen zum Konfigurieren des SMTP-Hosts, des Ports, des Benutzernamens, des Kennworts usw. zur Verfügung.
Der Teilcode lautet wie folgt:
use Zend\Mail\Transport\Smtp as SmtpTransport;
use Zend\Mail\Transport\SmtpOptions;
$transport = new SmtpTransport();
$options = new SmtpOptions([
'name' => 'localhost',
'host' =>'smtp.gmail.com',
'port' => 465,
]);
$transport->setOptions($options);
Hier,
name - Name des SMTP-Hosts.
host - Remote-Hostname oder IP-Adresse.
port - Port, an dem der Remote-Host empfangsbereit ist.
Mail-Konzept - Beispiel
Lassen Sie uns die folgenden Punkte befolgen, um eine einfache PHP-Konsolenanwendung zu schreiben, um das Mail-Konzept zu verstehen.
Erstellen Sie einen Ordner "mailapp".
Installieren zend-mail mit dem Composer-Tool.
Erstellen Sie eine PHP-Datei Mail.php im Ordner "mailapp".
Erstellen Sie die Nachricht mit dem Zend\Mail\Message.
$message = new Message();
$message->addTo('[email protected]');
$message->addFrom('[email protected]');
$message->setSubject('Hello!');
$message->setBody("My first Zend-mail application!");
Erstellen Sie die SMTP-Transportschicht und fügen Sie die erforderliche Konfiguration hinzu.
// Setup SMTP transport using LOGIN authentication
$transport = new SmtpTransport();
$options = new SmtpOptions([
'name' => 'localhost',
'host' => 'smtp.gmail.com', // or any SMTP server
'port' => 465, // port on which the SMTP server is listening
'connection_class' => 'login',
'connection_config' => [
username' => '<your username>', 'password' => '<your password>',
'ssl' => 'ssl'],
]);
$transport->setOptions($options);
Senden Sie die E-Mail mit dem send Methode.
$transport->send($message);
Die vollständige Auflistung, Mail.php ist wie folgt -
<?php
require __DIR__ . '/vendor/autoload.php';
use Zend\Mail\Message;
use Zend\Mail\Transport\Smtp as SmtpTransport;
use Zend\Mail\Transport\SmtpOptions;
$message = new Message();
$message->addTo('[email protected]');
$message->addFrom('[email protected]');
$message->setSubject('Hello!');
$message->setBody("My first Zend-mail application!");
// Setup SMTP transport using LOGIN authentication
$transport = new SmtpTransport();
$options = new SmtpOptions([
'name' => 'localhost',
'host' => 'smtp.gmail.com', // or any SMTP server
'port' => 465, // port on which the SMTP server is listening
'connection_class' => 'login',
'connection_config' => [
'username' => '<your username>', 'password' => '<your password>',
'ssl' => 'ssl'],
]);
$transport->setOptions($options);
$transport->send($message);
Führen Sie nun die Anwendung an der Eingabeaufforderung aus php Mail.php. Dadurch wird die E-Mail wie in der Anwendung konfiguriert gesendet.