今更ですが、PHPでメールを送信

今更ではありますが、PHPで動かしていて、特定のタイミングでメールを飛ばすようにしたいことってありますよね。というわけで、簡単なものですが以下に記しておきます。

<?php
mb_language('ja');
mb_internal_encoding('utf-8');
mb_send_mail(
'username <to-user@domain.dom>',
'ここに件名が入ります',
'ここに送信内容(本文)が入ります。',
'From: username <from-user@domain.dom>',
'-f from-user@domain.dom'
);

- mb_language
    - メール送信時のエンコードを設定
      ja の場合、ISO-2022-JP/Base64
      uni の場合、UTF-8/Base64

- mb_internal_encoding
    - 内部エンコーディング
      PHPで使用しているエンコードと同じ指定

- mb_send_mail
    - メールを送信
      差出人, 件名, 本文, ヘッダ(おもに From で使用)

※mb_language と mb_internal_encoding は指定しないと文字化けの原因になりやすいです。

山田太郎 <to-user@domain.dom>
のように日本語を使用したい場合は、
mb_encode_mimeheader('山田太郎') . ' <to-user@domain.dom>'
と、mb_encode_mimeheader を使って変換しましょう。

mb_send_mail に第5引数として「-f from-user@domain.dom」を指定すると Return-path が設定されます。
Gmailで「経由」が付く場合などに、メール処理するサーバーと同じドメインを含んだアドレスを指定すると、経由扱いにならなかったりします。
※第5引数は環境によっては使えない場合があります。

この記事へのコメント


この記事へのトラックバック