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。これにより、アプリケーションで構成されたとおりにメールが送信されます。