前提・実現したいこと
XAMPPのローカル環境上で、PHPMailerを使ってyahooメールからgmailにメールを送信したい。
発生している問題・エラーメッセージ
送信エラー'SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting'
該当のソースコード
PHP
1//mail.php 2 3<?php 4 require 'php-library/Exception.php'; 5 require 'php-library/PHPMailer.php'; 6 require 'php-library/SMTP.php'; 7 8 use PHPMailer\PHPMailer\PHPMailer; 9 10 /** メールの送信テスト */ 11 12 /// メーラーインスタンス作成 13 $mailer = new PHPMailer(); 14 15 /// 文字コード 16 $mailer->CharSet = 'UTF-8'; 17 $mailer->Encoding = '7bit'; 18 19 /// SMTPサーバーを利用する 20 $mailer->IsSMTP(); 21 $mailer->SMTPAuth = true; 22 23 /// SMTPサーバー 24 $mailer->Host = 'smtp.mail.yahoo.co.jp'; 25 /// 送信元のユーザー名 26 $mailer->Username = 'hoge'; 27 /// 送信元のパスワード 28 $mailer->Password = 'hogehoge'; 29 /// ポート番号 30 $mailer->Port = 465; 31 32 /// 送信元メルアド 33 $mailer->From = 'hoge@yahoo.co.jp'; 34 /// 送信者名 35 $mailer->FromName = 'テスト送信'; 36 37 /// 送信先と件名・本文を設定してテスト送信 38 /// 送信先アドレス 39 $mailer->addAddress( 'hoge@gmail.com' ); 40 /// メール件名 41 $mailer->Subject = 'テスト送信'; 42 /// メール本文 43 $mailer->Body = 'こんにちは、テスト送信です。'; 44 /// メール送信 45 $result = $mailer->send(); 46 47 if ( $result ) { 48 print_r('送信成功!!'); 49 } else { 50 print_r('送信エラー'); 51 /// エラー内容全出力 52 var_export($mailer->ErrorInfo); 53 }
PHP
1//sendmail.ini 2 3; configuration for fake sendmail 4 5; if this file doesn't exist, sendmail.exe will look for the settings in 6; the registry, under HKLM\Software\Sendmail 7 8[sendmail] 9 10; you must change mail.mydomain.com to your smtp server, 11; or to IIS's "pickup" directory. (generally C:\Inetpub\mailroot\Pickup) 12; emails delivered via IIS's pickup directory cause sendmail to 13; run quicker, but you won't get error messages back to the calling 14; application. 15 16smtp_server=mail.mydomain.com 17 18; smtp port (normally 25) 19 20smtp_port=25 21 22; SMTPS (SSL) support 23; auto = use SSL for port 465, otherwise try to use TLS 24; ssl = alway use SSL 25; tls = always use TLS 26; none = never try to use SSL 27 28smtp_ssl=auto 29 30; the default domain for this server will be read from the registry 31; this will be appended to email addresses when one isn't provided 32; if you want to override the value in the registry, uncomment and modify 33 34;default_domain=mydomain.com 35 36; log smtp errors to error.log (defaults to same directory as sendmail.exe) 37; uncomment to enable logging 38 39error_logfile=error.log 40 41; create debug log as debug.log (defaults to same directory as sendmail.exe) 42; uncomment to enable debugging 43 44;debug_logfile=debug.log 45 46; if your smtp server requires authentication, modify the following two lines 47 48auth_username= 49auth_password= 50 51; if your smtp server uses pop3 before smtp authentication, modify the 52; following three lines. do not enable unless it is required. 53 54pop3_server= 55pop3_username= 56pop3_password= 57 58; force the sender to always be the following email address 59; this will only affect the "MAIL FROM" command, it won't modify 60; the "From: " header of the message content 61 62force_sender= 63 64; force the sender to always be the following email address 65; this will only affect the "RCTP TO" command, it won't modify 66; the "To: " header of the message content 67 68force_recipient= 69 70; sendmail will use your hostname and your default_domain in the ehlo/helo 71; smtp greeting. you can manually set the ehlo/helo name if required 72 73hostname=
試したこと
ポート番号は25, 587, 465を試しましたが、すべて同じエラーメッセージが表示されます。
元々はPHPMailerを使わず、"php.ini"と"sendmail.ini"ファイルの設定を触っていたのですが、「Message is missing recipient's address」というエラーログが出てきて断念。PHPMailerを導入してみたところ、上記なようなエラーが表示され、やはりうまくいきません。
補足情報(FW/ツールのバージョンなど)
Windows10 XAMPP環境。ライブラリにPHPMailerを使用。
プログラミング初心者で、2日ほど考えても分からず投稿させていただきました。ご回答いただけると嬉しいです。よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー