web-dev-qa-db-ja.com

GMAILメールサーバーを使用してPHPでXAMPPを実行しているlocalhostからメールを送信する

Php mail()関数を使用して、localhostからyahooメールアカウントにメールを送信しようとしましたが、戻り値は、メールを正常に送信しましたが、メールを取得できなかったことを示しています。私は電子メールを送信するための「シンプルな方法」と呼ばれる多くの方法を読んで試してきましたが、結果は期待を裏切るものであり、どれも私にとってはうまくいきません。以下は、コード、構成、およびエラーメッセージです。誰かがこれで私を啓発できますか?ありがとう。

pHPコード

<?php
$to      = '[email protected]';
$subject = 'Fake sendmail test';
$message = 'If we can read this, it means that our fake Sendmail setup works!';
$headers = 'From: [email protected]' . "\r\n" .
           'Reply-To: [email protected]' . "\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 = [email protected]
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
[email protected]
auth_password = mypassword
[email protected]

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

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

21
ani

ここにあります 私に答えを与えるリンク:

[インストール]「 Windows用の偽のsendmail 」。 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 only」ビットは無視してください)

次に、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アカウントにアクセスするには、 アプリケーション固有のパスワード を作成する必要があります。 ( ソース

20
ani

php.iniファイルで、このコメントを外します

sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
;sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"

およびsendmail.iniで

smtp_server=smtp.gmail.com
smtp_port=465
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=yourpassword
[email protected]
hostname=localhost

これを設定します..それは動作します...それは私のためにうまく機能しています。

ありがとう。

4
Rambabu
[sendmail]

smtp_server=smtp.gmail.com  
smtp_port=25  
error_logfile=error.log  
debug_logfile=debug.log  
[email protected] 
auth_password=gmailpassword  
[email protected]

メールのユーザー名とパスワードの認証が必要な場合、ローカルホストからメールを正常に送信できるのは一度だけです

0
poonam

Gmailアカウントの2番目のパスワードを生成することを忘れないでください。この新しいパスワードをコードで使用します。これを読む:

https://support.google.com/accounts/answer/1858

[アプリパスワードの生成方法]セクションで[アプリパスワード]をクリックし、[アプリの選択]で[メール]を選択し、デバイスを選択して[生成]をクリックします。 2番目のパスワードが画面に印刷されます。

0
Vadzym

最も簡単な方法は、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;                  

サンプルスクリプトと完全なソースコードは、ここから入手できます- PHPでLocalhostからメールを送信する方法

0
JoyGuru