PHPの実行環境でフルスクラッチでsendmailを実行する必要が出てきた。

mail関数はメール送信前にヘッダ周りの設定が何かと面倒なので、SOY CMSの開発で様々なサーバの運営に関わった知見を活用するため、SOY CMS内で動いているSOY2フレームワークのSOY2Mailのみを使用することにしてみた。

SOY CMSの開発秘話


root
├── index.php
└── lib
    └── soy2_build.php

SOY2Mailを試す為のファイル構成は上記のようにする。


/root/lib直下にあるsoy2_build.phpは

SOY CMSに同梱されているSOY2ライブラリを頂戴してきた。

※SOY CMS内のSOY2ライブラリの位置

※/CMSインストールディレクトリ/common/lib/soy2_build.php


それでは早速、SOY Mailを使う為のコードをindex.phpに書いてみる。


index.php

<?php
include_once("lib/soy2_build.php");

$to = "hoge@huga.com";
$from = "contact@example.com";
$name = "テスト";
$subject = "SOY2Mailテスト";
$body = "Hello Mail!";

//SOY2Mailの読み込み
$mail = SOY2Mail::create("sendmail", array());

//宛先(To)の指定
$mail->addRecipient($to, "");

//送信元(From)の指定 第二引数で送信元名称を指定する
$mail->setFrom($from, $name);

//メールタイトル
$mail->setSubject($subject);

//メール本文
$mail->setText($body);

//メール送信
$mail->send();

上記の手続きでメールを送信する。

ヘッダ、エンコードやエンベロープFromはsendメソッド内の処理で環境に合わせて組み立ててメールを送信してくれる。


関連記事

SOY CMSを介さずにSOY2HTMLを使ってみる

SOY CMSを介さずにSOY2DAOを使ってみる