メールの送信

ローカルからのメール送信

ローカルからメールを送信するには、まずメールサーバを用意する必要があります。

メールサーバ名の指定

php.iniのmail functionの項目に、適切なSMTPのメールサーバ名とポート番号を指定します。

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

これが正しく設定されていないと、次のように警告されます。

Failed to connect to mailserver at "localhost" port 25,
  verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()

この警告は、メールサーバによってアクセスが許可されていないときにも表示されます。

差出人の指定

sendmail_fromに差出人のメールアドレスを指定します。

; For Win32 only.
sendmail_from = me@example.com

これを指定していないと、次のように警告されます。

SMTP server response: 501 5.5.4 Invalid Address

メールの中継の許可

メールサーバにMicrosoft SMTP Serviceを使用しているならば、メールの中継を許可します。これが許可されていないと、次のように警告されます。

SMTP server response: 550 5.7.1 Unable to relay for name@example.com

日本語によるメール送信

言語と文字コードを設定して、マルチバイト対応のmb_send_mail()関数を使用します。

なおmb_send_mail()の第4引数はメールヘッダの最後に追加する文字列で、ここには必ずFromヘッダを含める必要があります。

mb_language( 'Japanese' );
mb_internal_encoding( 'UTF-8' );

mb_send_mail( $to, $subject, $message, "From:{$from}" )

差出人を設定する

Fromヘッダに下記のように記述します。senderに差出人を、送信元のメールアドレスは<>で囲んでaddressに記述します。

"From:sender<address>"