ドコモメールを使えばウェブサーバーから携帯キャリア経由でメール送信が可能になります。
携帯キャリアを経由してメールを送信すれば迷惑メールとして弾かれる可能性が低くなります。
今回はそのやり方について説明します。
ドコモメールサーバーに関する情報は下記を参照ください。
他のメールソフトからのご利用方法 | サービス・機能 | NTTドコモ
// ドコモメール送信サーバー接続・認証 function smtpauth($smtphost,$docomoid,$password,$port,&$msg){ $hostname = exec("hostname"); $ip = gethostbyname($smtphost); // 接続 if(@$sock=fsockopen("ssl://{$ip}",$port,$errno,$msg)){ $msg = fgets($sock); if(strpos($msg,"220")===false and strpos($msg,"250")===false){ fclose($sock); return false; } fputs($sock,"ehlo {$hostname}\r\n"); $msg = fgets($sock); if(strpos($msg,"220")===false and strpos($msg,"250")===false){ fclose($sock); return false; } // 認証 fputs($sock,"auth login\r\n"); while(strpos($msg=fgets($sock),"334")===false){ if(strpos($msg,"220")===false and strpos($msg,"250")===false and strpos($msg,"334")===false){ fclose($sock); return false; } } fputs($sock,base64_encode($docomoid)."\r\n"); $msg = fgets($sock); if(strpos($msg,"220")===false and strpos($msg,"250")===false and strpos($msg,"334")===false){ fclose($sock); return false; } fputs($sock,base64_encode($password)."\r\n"); $msg = fgets($sock); if(strpos($msg,"220")===false and strpos($msg,"250")===false and strpos($msg,"334")===false and strpos($msg,"235")===false){ fclose($sock); return false; } return $sock; }else{ $msg = "connection error"; return false; } }
下記の文字列を必要に応じて変更してください。
// ドコモメール送信サーバー接続・認証 if(!$sock=smtpauth("smtp.spmode.ne.jp","docomoid@docomo.ne.jp","password",465,$msg)){ mb_send_mail("returnpath@systemexpress.co.jp","mailer-daemon",$msg); exit; } // エンベロープFROM fputs($sock,"mail from: <docomoid@docomo.ne.jp>\r\n"); $msg = fgets($sock); if(strpos($msg,"220")===false and strpos($msg,"250")===false){ mb_send_mail("returnpath@systemexpress.co.jp","mailer-daemon",$msg); fclose($sock); exit; } // エンベロープTO fputs($sock,"rcpt to: <mailto@docomo.ne.jp>\r\n"); $msg = fgets($sock); if(strpos($msg,"220")===false and strpos($msg,"250")===false){ mb_send_mail("returnpath@systemexpress.co.jp","mailer-daemon",$msg); fclose($sock); exit; } // dataコマンド fputs($sock,"data\r\n"); $msg = fgets($sock); if(strpos($msg,"354")===false and strpos($msg,"220")===false and strpos($msg,"250")===false){ mb_send_mail("returnpath@systemexpress.co.jp","mailer-daemon",$msg); fclose($sock); exit; } // 本文 $content = <<<EOF from: docomoid@docomo.ne.jp to: mailto@docomo.ne.jp subjetct: test テスト EOF; fputs($sock,"{$content}\r\n.\r\n"); $msg = fgets($sock); if(strpos($msg,"220")===false and strpos($msg,"250")===false){ mb_send_mail("returnpath@systemexpress.co.jp","mailer-daemon",$msg); fclose($sock); exit; }
Copyright(C) systemexpress.co.jp All Rights Reserved. Author Takayuki Yukawa