
WordPressでSMTPを設定する場合は、「WP Mail SMTP」などのプラグインを入れなくてもfunctions.phpにコードを追記することで設定できます。
SMTPを設定することで、メールの送信をより安全により確実に行ってくれます。
昨今、「なりすましメール」や「フィッシングメール」が問題化しており、メールを取り巻く環境が一段と厳しくなっています。
メールがスパムとして扱われたり、メールが相手に届かないという現象が増えているのです。
SMTPを使用することで、
- メールが確実に送信される可能性が高まる。
- SSL/TLSを使用してデータを暗号化することができるため、送信中の情報が第三者に盗まれるリスクを低減させることができる。
- メールがスパムとして扱われるリスクを減らすことができる。
ので、最低でもSMTPを使った送信設定をしておきましょう。
また、後述するSPF、DKIM、DMARCの設定も併せて行っておけば、確実に相手に届く確率が高まります。
WordPressでは、標準機能として組み込まれているPHPMailerというライブラリを使ってメール送信を行います。
コードは至ってシンプルなので、必要な情報を入手して子テーマのfunctions.phpに追記しましょう。
※記事内で紹介しているHTML・CSS・JavaScript・PHPなどのコードは、作成時点における作成者の最適解です。動作環境やバージョンによって結果が異なる場合があります。コードの使用により生じたいかなる損害やトラブルについても、当サイトは責任を負いかねます。
必要な情報
必要な情報は次のとおりです。メールサーバーなどにログインして必要な情報を入手しましょう。
- SMTPサーバー
➡ConoHa WINGの場合:mail◯◯.conoha.ne.jp
➡Gmailの場合:smtp.gmail.com - ユーザー名(メールアドレス)
- パスワード
PHPコード
コードは次のとおりです。入手した情報に置き換えて、子テーマのfunctions.phpに追記しましょう。
なお、SSLは古いプロトコルでセキュリティ上の脆弱性が指摘されているため、TLSの使用が一般的です。
//STMP経由のメール送信
add_action('phpmailer_init','custom_smtp_settings');
function custom_smtp_settings( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = 'smtp.example.com'; // SMTP サーバー
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 587; // 465(SSL)か587(TLS)を使用
$phpmailer->Username = 'your-username@example.com'; // SMTP ユーザー名
$phpmailer->Password = 'your-smtp-password'; // SMTP パスワード
$phpmailer->SMTPSecure = 'tls'; // 'ssl' または 'tls'
$phpmailer->From = 'your-username@example.com'; // 送信元メールアドレス
$phpmailer->FromName = 'あなたの名前またはサイト名'; // 送信者名
$phpmailer->SMTPAutoTLS = false; // 必要に応じて追加(エラー回避用)
$phpmailer->SMTPDebug = 0;
}
SMTPとは?
SMTPは簡単にいうと「郵便屋」さんです。
あなたがポストに入れた手紙は、集荷して届けてくれる人がいないと友達の家に届きません。
その仕事をしているのが「郵便屋」さん。
インターネットの世界では、その「郵便屋」さんが「SMTP」です。
SMTPは、どこからメールが来たのかを伝え、どこにメールを届けるのか決めて、ちゃんとメールを届ける仕事をしてくれています。
可能であればDMARCの設定も
SPF、DKIM、DMARCはメール認証の方法。「送信ドメイン認証」と呼ばれ、メールの送信者が本物かどうかを検証する仕組みです。
設定しておかないと、メールがブロックされたり、迷惑メールに振り分けられたりする可能性が高まります。
Gmailでは、個人用 Gmail アカウントにメールが正常に送信・配信されるためには、ドメインに次のようなメール認証方式を設定する必要があるとしています。
- すべての送信者: SPF または DKIM
- 一括送信者: SPF、DKIM、DMARC
SPFとDKIMについてはメールサーバー側で標準設定されているものも多いですが、DMARCについては自分で設定(DNSにTXTレコードとして追加)しないといけないかもしれません。
この際ですから、併せてやっておきましょう。
詳しくは、使っているレンタルサーバーやドメイン管理サービスで確認してください。