phpmailerがS/MIMEに対応しているというので使って見ようとしたのですがほとんど情報無し。。。

断片的にある情報も、わかりづらいのと、署名だけで暗号化のやり方が書いていない。

そんな中、署名+暗号化の方法というか、追加したclass.phpmailer.phpを配布している人を見つけた。よのかにはすごい人がいるもんだ。

これを使えば簡単!!びっくり。

事前に、

  1. 証明書の入手
  2. pfxからpemへの変換

などは必要です。あと、5.1用ということだけれと、5.2.xとレプレースしても、動きました。

<?php

	require("./phpmailer/class.phpmailer.php");

	mb_language("japanese");
	mb_internal_encoding("UTF-8");

	$mailer = new PHPMailer();

	$mailer->SetLanguage("ja");
	$mailer->CharSet = "ISO-2022-JP";
	$mailer->Encoding = "7bit";

	$mailer->IsSMTP();

	$mailer->From = "from@hoge.com";
	$mailer->FromName = mb_encode_mimeheader(mb_convert_encoding("私からのメール","JIS","UTF-8"));
	$mailer->Subject =  mb_encode_mimeheader(mb_convert_encoding("たいとる","JIS","UTF-8"));

	$mailer->Body = mb_convert_encoding("こんにちは。","JIS","UTF-8");
	$mailer->AddAddress("to@hoge.com");

	//$mailer->Sign("./ssl/cert.pem","./ssl/key.pem","pass");
	$mailer->Encrypt("./ssl/cert.pem");

	//
	if(!$mailer->Send())
	{
		echo "mail send error";
	}
	else
	{
		echo "mail send";
	}
?>

厳密に書かないと、Thunderbirdとかで文字化けしますね。。。

$mailer->CharSet = "ISO-2022-JP";をかいとかないと、Content-typeがおかしくなってました。

 

Share on Facebook
このエントリーをはてなブックマークに追加