ZendFramework-メール管理
Zend Frameworkは、と呼ばれる別個のコンポーネントを提供します。 zend-mail電子メールメッセージを送信します。zend-mailコンポーネントには、テキスト形式とhtml形式の両方の添付ファイル付きの電子メールメッセージを読み書きするオプションもあります。Zendでの電子メールの送信は、構成がはるかに簡単で簡単です。
この章では、電子メールの概念、基本設定、SMTPトランスポートなどの詳細設定などについて説明します。
メールコンポーネントをインストールする
メールコンポーネントは、次のComposerコマンドを使用してインストールできます。
composer require zendframework/zend-mail
基本的なEメール構成
基本的な電子メールは、1人以上の受信者、件名、本文、および送信者で構成されます。Zendは提供しますZend\Mail\Message新しい電子メールメッセージを作成するクラス。を使用してメールを送信するにはzend-mail、少なくとも1人の受信者とメッセージ本文を指定する必要があります。
新しいメールメッセージを作成するための部分的なコードは次のとおりです-
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は、メールメッセージを送信するためのZend \ Mail \ Sendmailクラスを提供します。 Sendmail phpネイティブメール機能を使用し、 mail メールメッセージを送信し、php構成ファイルを使用してトランスポート層を構成できます。
Sendmailを使用した部分的なコーディングは次のとおりです-
$transport = new Mail\Transport\Sendmail();
$transport->send($mail);
ザ・ zend-mail 多くのトランスポート層を提供し、それぞれがユーザー名、パスワードなどの多くの追加パラメーターを必要とする場合があります
メール管理方法
注目すべきメール管理方法のいくつかは次のとおりです-
isValid −「差出人」アドレスのないメッセージは無効です。
isValid() : bool
setEncoding −メッセージのエンコーディングを設定します。
setEncoding(string $encoding) : void
getEncoding −メッセージエンコーディングを取得します。
getEncoding() : string
setHeaders −ヘッダーを作成します。
setHeaders(Zend\Mail\Headers $headers) : void
getHeaders −ヘッダーコレクションにアクセスします。
getHeaders() : Zend\Mail\Headers
setFrom−差出人アドレスを設定(上書き)します。キーと値のペアが含まれています。キーは人間が読める名前で、値は電子メールアドレスです。
setFrom(
string|AddressInterface|array|AddressList|Traversable $emailOrAddressList,
string|null $name
) : void
addFrom −「差出人」アドレスを追加します。
addFrom(
string|AddressInterface|array|AddressList|Traversable $emailOrAddressOrList,
string|null $name
) : void
getFrom −「From」送信者のリストを取得します。
getFrom() : AddressList
setTo - Overwrite the address list in the To recipients.
setTo(
string|AddressInterface|array|AddressList|Traversable $emailOrAddressList,
null|string $name
) : void
setSubject −メッセージの件名のヘッダー値を設定します。
setSubject(string $subject) :void
setBody −メッセージ本文を設定します。
setBody(null|string|Zend\Mime\Message|object $body) : void
SMTPトランスポート層
ザ・ zend-mail SMTPサーバーを使用して電子メールを送信するオプションを提供します Zend\Mail\Transport\Smtpclass。のようなSendmail ただし、SMTPホスト、ポート、ユーザー名、パスワードなどを構成するための追加オプションがいくつかあります。
部分コードは次のとおりです-
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);
ここに、
name −SMTPホストの名前。
host −リモートホスト名またはIPアドレス。
port −リモートホストがリッスンしているポート。
メールの概念–例
次の点に従って、メールの概念を理解するための簡単なphpコンソールアプリケーションを作成しましょう。
「mailapp」フォルダを作成します。
インストール zend-mail 作曲家ツールを使用します。
PHPファイルを作成する Mail.php 「mailapp」フォルダ内。
を使用してメッセージを作成します Zend\Mail\Message。
$message = new Message();
$message->addTo('[email protected]');
$message->addFrom('[email protected]');
$message->setSubject('Hello!');
$message->setBody("My first Zend-mail application!");
SMTPトランスポート層を作成し、必要な構成を追加します。
// 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);
を使用してメールを送信します send 方法。
$transport->send($message);
完全なリスト、Mail.phpは次のとおりです-
<?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);
次に、コマンドプロンプトでアプリケーションを実行します php Mail.php。これにより、アプリケーションで構成されたとおりにメールが送信されます。