23

PHP の mail() 関数を使用して localhost から yahoo のメール アカウントにメールを送信しようとすると、メールの送信に成功したというメッセージが返されますが、メールを受信できませんでした。私は電子メールを送信するためのいわゆる「簡単な方法」をたくさん読んで試してきましたが、結果は期待外れで、どれもうまくいきません。以下は、コード、構成、およびエラー メッセージです。誰かがこれで私を啓発できますか?ありがとう。

phpコード

<?php
$to      = 'myemail@yahoo.com';
$subject = 'Fake sendmail test';
$message = 'If we can read this, it means that our fake Sendmail setup works!';
$headers = 'From: myemail@egmail.com' . "\r\n" .
           'Reply-To: myemail@gmail.com' . "\r\n" .
           'X-Mailer: PHP/' . phpversion();

if(mail($to, $subject, $message, $headers)) {
    echo 'Email sent successfully!';
} else {
    die('Failure: Email was not sent!');
}
?>

php.ini の設定 (gmail メール サーバーを使用しています)

SMTP =smtp.gmail.com
smtp_port =587
sendmail_from = myemail@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

sendmail.ini の構成

smtp_server=smtp.gmail.com
smtp_port=587
smtp_ssl=tls
error_logfile=error.log
debug_logfile=debug.log
auth_username=myemail@gmail.com
auth_password=mypassword
force_sender=myemail@gmail.com

ポート 587 の sendmail エラー ログのエラー メッセージ

13/10/02 13:36:41 : 最初に STARTTLS コマンドを発行する必要があります。k4sm129639pbd.11 - gsmtp

4

5 に答える 5

22

これが私に答えを与えるリンクです:

[インストール] 「偽の sendmail for windows」。XAMPP を使用していない場合は、ここからダウンロードできます: http://glob.com.au/sendmail/sendmail.zip

[Modify] the php.ini file to use it (commented out the other lines):

[mail function]
; For Win32 only.
; SMTP = smtp.gmail.com
; smtp_port = 25

; For Win32 only.
; sendmail_from = <e-mail username>@gmail.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

(実際には sendmail を使用しているため、「Unix のみ」の部分は無視してください)

次に、sendmail がインストールされたディレクトリに「sendmail.ini」ファイルを構成する必要があります。

[sendmail]

smtp_server=smtp.gmail.com
smtp_port=25
error_logfile=error.log
debug_logfile=debug.log
auth_username=<username>
auth_password=<password>
force_sender=<e-mail username>@gmail.com

2 要素認証で保護された Gmail アカウントにアクセスするには、アプリケーション固有のパスワードを作成する必要があります。(ソース

于 2013-10-02T10:18:36.007 に答える
0

最も簡単な方法は、PHPMailer と Gmail SMTP を使用することです。以下のような構成になります。

require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;

$mail->isSMTP();                            
$mail->Host = 'smtp.gmail.com';            
$mail->SMTPAuth = true;                     
$mail->Username = 'Email Address';          
$mail->Password = 'Email Account Password'; 
$mail->SMTPSecure = 'tls';               
$mail->Port = 587;                  

サンプル スクリプトと完全なソース コードは、ここから入手できます - How to Send Email from Localhost in PHP

于 2016-02-26T14:43:48.197 に答える
0
[sendmail]

smtp_server=smtp.gmail.com  
smtp_port=25  
error_logfile=error.log  
debug_logfile=debug.log  
auth_username=myemail@gmail.com 
auth_password=gmailpassword  
force_sender=myemail@gmail.com

メールのユーザー名とパスワードを認証する必要があり、一度だけ localhost からメールを正常に送信できます

于 2015-06-09T07:22:44.850 に答える