Categories: WordPress開発

WordPress でメール送信

WordPressはPHPなので、sendmailを使っても当然メールは送信できるわけですが、 WordPressからメールを送信するには、wp_mail() なる関数が用意されているので、それを使ったほうが簡単。

2020/4/27修正

いつからかわからないですが、$headersには、三島平八 のような形式では指定できなくなっていました。(wp_mail_from_nameフックを使う必要があります。)

$headers[] = 'from:heihachi@********.com';//送信元メールアドレス
$headers[] = 'reply-to:funclub@********.com';//reply-toメールアドレス
$mailadress = 'kazuya@*******.jp';//送信先メールアドレス
$subject = 'お元気ですか?';
$message = '私もずいぶんな歳になりましたが、まだまだ元気です。';
wp_mail($mailadress, $subject, $message, $headers);

wp_mail_from_nameフックを使って、メールアドレスに名前をつけます。

function custom_wp_mail_from_name( $original_email_from ) {
	$name = "三島平八";
	return $name;
}
add_filter('wp_mail_from_name','custom_wp_mail_from_name');

↓これは以前はいけたけど、ダメな例です

$headers = 'From:三島平八';//送信元メールアドレス
$mailadress = 'kazuya@*******.jp';//送信先メールアドレス
$subject = 'お元気ですか?';
$message = '私もずいぶんな歳になりましたが、まだまだ元気です。';
wp_mail($mailadress, $subject, $message, $headers);

あと、Return-Pathを設定するには、アクションフックを使うらしいです。
参考:http://2inc.org/blog/2013/08/05/3459/

ただし、wp_mail() の $headers でFrom:を指定すると、勝手にReturn-Path:も設定されるようなので、通常はいらないのでは?

nakaike