1. ホーム
  2. php

[解決済み] メーラーエラーです。SMTP connect() failed in php mailer( https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting) [duplicate].

2022-02-01 13:02:35

質問内容

以下は、ネットでいろいろと参考にした、ローカルホストからのメール送信のためのコードです。

html フォームを作成します。

<form method="post" action="email.php">
  Email: <input name="email" id="email" type="text" /><br />

  Message:<br />
  <textarea name="message" id="message" rows="15" cols="40"></textarea><br />

  <input type="submit" value="Submit" />
</form>

email.phpになります。

<?php

// $email and $message are the data that is being
// posted to this page from our html contact form
$email = $_REQUEST['email'] ;
$message = $_REQUEST['message'] ;

require_once('class.phpmailer.php');
require 'PHPMailerAutoload.php';
require 'class.smtp.php';

$mail = new PHPMailer();
$body='hellooooo';
$mail->IsSMTP();

$mail->Host = "ssl://smtp.gmail.com"; // specify main and backup server

$mail->SMTPAuth = true; // turn on SMTP authentication

$mail->Username = "[email protected]"; // SMTP username
$mail->Password = "zzz"; // SMTP password
$mailer->SMTPSecure = 'ssl';
$mailer->Port = 465;//587;
$mail->AddAddress("xxx", "xx");
$mail->SetFrom('[email protected]','xxxx');
$mail->WordWrap = 50;

$mail->IsHTML(true);

$mail->Subject = "You have received feedback from your website!";

$mail->MsgHTML($body);

if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}

echo "Message has been sent";
?>

で、私のコードを実行すると、次のようなエラーが表示されます。

メッセージを送信できませんでした。

メーラーエラーです。SMTP connect() に失敗しました。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

そして、この行のセミコロンを削除しました。 ;extension=php_openssl.dll を以下のファイルから削除し、xamppを再起動します。

c/xampp/apache/bin/php.ini and c/xampp/php/php.ini

のままです。

注意 私はphpの初心者ですが、私はこの1つを知っていて、問題を解決したいです。

誰かこれを解決するのを助けてくれますか?

ありがとうございます。

解決方法は?

認証接続に失敗したようです。私はよくローカルからメールを送りますが、gmailよりも他のSMTPを使う方がずっと簡単です。 マンドリルのアプリ 12,000通まで無料です。あなたのコードには理解できないことがたくさんあるので、私のコードを共有します。

<?php 

require 'PHPMailer-master/PHPMailerAutoload.php';

$mail = new PHPMailer;
//$mail->SMTPDebug = 3;                               // Enable verbose debug output

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.mandrillapp.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = '[email protected]';                 // SMTP username
$mail->Password = 'mandrilapp_will_give_you_a_password';                           // SMTP password
$mail->Port = 587;                                    // TCP port to connect to

$mail->From = '[email protected]';
$mail->FromName = 'Test phpmailer';
$mail->addAddress('[email protected]');               // Name is optional

$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

PHPMailer-masterフォルダがあることを確認してください。 こちら ) を php ファイルと同じ階層に置いてください。このようにphpmailerをリンクしています。もし何か質問があれば、私に聞いてください。