メール, PHP

PEAR::Mail Gmailサーバを経由してメール送信

 

mailtest.php

<?php
require_once("/usr/share/pear/Mail.php");

mb_language("japanese");
mb_internal_encoding("UTF-8");

$params = array(
        'host'     => 'tls://smtp.gmail.com',
        'port'     => 465,
        'auth'     => true,
        'username' => 'アカウント名@gmail.com',
        'password' => 'パスワード',
        'debug'    => false,
        'protocol'=>'SMTP_AUTH'
);

$headers = array(
  'From'    => 'example@gmail.com',
  'To'      => 'target@example.net',
  'Subject' => mb_encode_mimeheader(mb_convert_encoding("件名","JIS","UTF-8"))
);

$recipients = 'target@example.net';
$body = mb_convert_encoding("メールの内容","JIS","UTF-8");

$smtp = Mail::factory('smtp', $params);
$e = $smtp->send($recipients, $headers, $body);

if ( PEAR::isError($e) ) echo $e->getMessage() . "\n";

 

上記のスクリプトは587(STARTTLS)では送信できません。

Gmail経由からでしか送信しないので465で良いです。

 

465, 587? これって何?

メールサーバ同士、クライアントでやりとりする時のとりきめ、プロトコル。

 

 

587番ポート STARTTLS

  • 相手側もTLSに対応していたら暗号通信を行う

 

 

465番ポート SMTP OVER SSL

  • 必ず暗号化通信を行う
  • 相手が対応していないと送受信出来ないので安心だけれどトラブルになる

 

 

STARTTLS, SMTP Over SSLはどちらを使うべきなの?

使い分けるが面倒なら587 STARTTLS!

  • 普通のメールサーバならSTARTTLS
  • 今回はGmailをSMTPサーバとして経由して送信するのでSMTP Over SSLが最適解

 

PEAR::Mail以外を使う

PEARは更新されていないから、composerを利用して違うライブラリを利用しよう

 

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)