PHP Ethnaを使ってメールを送信

作成日:2018-01-31, 更新日:2018-01-31

基本

Ethnaは、まったく分からない。今のところ、勉強しようとも思わない。
でも、Ethnaを使ってメール送信する必要が出てきたのでそのメモ。

「/template/ja/mail」にテンプレートファイルをおく
▼仮に・・・「hello.tpl」としてテンプレートを用意

From: 〇〇〇@〇〇〇.〇〇〇
Subject:〇〇〇〇〇〇

{$username}様、こんにちは!

※変数は「{}」で囲む

▼メール送信させる

$ethnaMail =& new Ethna_MailSender($this->backend);
$ethnaMail->send('〇〇〇@〇〇〇',
  'hello.tpl',
  array(
     'username' => 〇〇〇〇,
  )
);

※送信先のメアド、テンプレートファイル名、テンプレート内で使う各変数の設定(配列)を引数にしている

「$this->backend」がどこからきているのかは知らないけど・・・

宛先を複数含めたい

ひとまずメモ。動作チェックはまだ。

メアドをカンマ区切りにすれば良いみたい。

$toMail = 'a123@abcd.ef,b456@abcd.ef,c789@abcd.ef';
$opt = array(
   'username' => 〇〇〇〇,
);

$ethnaMail =& new Ethna_MailSender($this->backend);
$ethnaMail->send($toMail, 'hello.tpl', $opt);

CCやBCCの設定

ひとまずメモ。動作チェックはまだ。

テンプレートにヘッダ情報をいれることで対応可能っぽい

From: 〇〇〇@〇〇〇.〇〇〇
Subject:〇〇〇〇〇〇
Cc: 〇〇〇@〇〇〇.〇〇〇
Bcc: 〇〇〇@〇〇〇.〇〇〇

{$username}様、こんにちは!

条件によってCCを含める・含めない

テンプレート側でCCの条件分岐をつけてあげる

▼メール送信(CC指定)

$ethnaMail =& new Ethna_MailSender($this->backend);
$isCC = true;
$ethnaMail->send('〇〇〇@〇〇〇',
  'hello.tpl',
  array(
     'username' => 〇〇〇〇,
     'isCC'     => $isCC,
  )
);

▼メールテンプレート(hello.tpl)

From: 〇〇〇@〇〇〇.〇〇〇
Subject:〇〇〇〇〇〇
{if $isCC}Cc: 〇〇〇@〇〇〇.〇〇〇{/if}

{$username}様、こんにちは!