メールの送信
ナビゲーションに移動
検索に移動
PHPでメールを送信してみるよ。
メール送信の方法はいくつかあるみたいだから、それぞれ紹介してみるよ。
僕が使っている環境はさくらサーバーのスタンダードプランだからそれ前提で話を進めるよ。
あと…メール受信をトリガーに呼び出す用だから、Paerを読み込むときはフルパスを切ってるよ。
(メール受信をトリガーにPHPを起動するとカレントディレクトリがmailfilterがおいてあるディレクトリになるそうだよ…)
サンプルはエラーハンドリングしていないけど、実際に組むときはちゃんとハンドリングしてね。
mb_send_mail()
「mb_send_mail()」を使ってメールを送信するサンプルプログラムだよ。
#!/usr/local/bin/php
<?php
//カレントの言語を日本語にする
mb_language("ja");
//内部文字エンコードを設定する
mb_internal_encoding("UTF-8");
//設定
$mailTo = "【送信先アドレス】";
$subject = "表題";
$body = "本文";
$header = "From: 【送信元アドレス】";
//文字コード変換
$subject = mb_convert_encoding($subject,"ISO-2022-JP-MS","UTF-8");
$body = mb_convert_encoding($body,"ISO-2022-JP-MS","UTF-8");
//メール送信
mb_send_mail($mailTo, $subject, $body, $header);
?>
mail()
「mail()」を使ってメールを送信するサンプルプログラムだよ。
#!/usr/local/bin/php
<?php
//カレントの言語を日本語にする
mb_language("ja");
//内部文字エンコードを設定する
mb_internal_encoding("UTF-8");
//設定
$mailTo = "【送信先アドレス】";
$subject = "表題";
$body = "本文";
$header = "From: 【送信元アドレス】";
//文字コード変換
$subject = mb_encode_mimeheader($subject,"ISO-2022-JP-MS");
$body = mb_convert_encoding($body,"ISO-2022-JP-MS","UTF-8");
//メール送信
mail($mailTo, $subject, $body, $header);
?>
Mail::send() mail編
「Mail::send()」を使って、内部的にMail関数を使ってメールを送信するサンプルプログラムだよ。
#!/usr/local/bin/php
<?php
require_once '/home/【ドメイン名】/pear/share/pear/Mail.php';
//言語設定、内部エンコーディングを指定する
mb_language("japanese");
mb_internal_encoding("UTF-8");
//設定
$mailTo = "【送信先アドレス】";
$subject = "表題";
$body = "本文";
//コード変換
$subject = mb_convert_encoding($subject,"ISO-2022-JP-MS","UTF-8");
$body = mb_convert_encoding($body,"ISO-2022-JP-MS","UTF-8");
//ヘッダー設定
$headers = array(
"From" => '【送信元アドレス】',
"To" => $mailTo,
"Subject" => mb_encode_mimeheader($subject)
);
$mail =& Mail::factory('mail');
$mail->send($mailTo, $headers, $body);
?>
Mail::send() smtp編
「Mail::send()」を使って、内部的にsmtpを使ってメールを送信するサンプルプログラムだよ。
#!/usr/local/bin/php
<?php
require_once '/home/【ドメイン名】/pear/share/pear/Mail.php';
//言語設定、内部エンコーディングを指定する
mb_language("japanese");
mb_internal_encoding("UTF-8");
//設定
$mailTo = "【送信先アドレス】";
$subject = "表題";
$body = "本文";
//コード変換
$subject = mb_convert_encoding($subject,"ISO-2022-JP-MS","UTF-8");
$body = mb_convert_encoding($body,"ISO-2022-JP-MS","UTF-8");
//ヘッダー設定
$headers = array(
"From" => '【送信元アドレス】',
"To" => $mailTo,
"Subject" => mb_encode_mimeheader($subject)
);
//SMTPの設定
$params = array(
"host" => "【SMTPホスト名】",
"port" => 【送信ポート番号】,
"auth" => 【smtp認証の要/不要】,
"username" => "【smtpのユーザID】",
"password" => "【smtpのパスワード】"
);
$mail =& Mail::factory('smtp', $params);
$mail->send($mailTo, $headers, $body);
?>