当前位置: 首页 > 知识库问答 >
问题:

未捕获的异常'PHP邮件异常'消息SMTP连接()失败

澹台成龙
2023-03-14

我得到了这个错误

致命错误:未捕获的异常'phpmail erExc0019',消息'SMTP连接()失败。https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting'在C:\xampp\htdocs\muhasibb\eppper\PHPMailer-master\class.phpmailer.php:1465堆栈跟踪:#0 C:\xampp\htdocs\muhasibb\eppper\PHPMailer-master\class.phpmailer.php(1301): PHPMailer-

当我使用代码时

<?php 
                            // Passing `true` enables exceptions

    //Server settings

    require 'PHPMailer-master/PHPMailerAutoload.php';
    $mail = new PHPMailer(true);                                // Enable verbose debug output
    $mail->isSMTP(); 
    $mail->SMTPDebug = 2;                                     // Set mailer to use SMTP
    $mail->Host = 'smtp.gmail.com';  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'yousaf.farooq906@gmail.com';                 // SMTP username
    $mail->Password = '********';                           // SMTP password
    $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;
    $mail->Mailer = "smtp";                                    // TCP port to connect to

    //Recipients
    $mail->setFrom('yousaf.farooq906@gmail.com', 'Yousaf Farooq');
    $mail->addAddress('yousaf.farooq906@gmail.com', 'Joe User');     // Add a recipient
    $mail->addAddress('ellen@example.com');               // Name is optional


    //Attachments
        // Optional name

    //Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'Yousaf Farooq';
    $mail->Body    = 'This is Yousaf Farooq';


    if($mail->send())
    echo 'Message has been sent';
    else
    echo 'Message could not be sent.';
?>

共有3个答案

雷晋
2023-03-14

如果在localhost中工作,

在php.ini中:删除“sendmail\u from=postmaster@localhost“然后重新启动xampp。

在gmail帐户中:在安全设置中,启用“允许不太安全的应用”。

最后在PHP脚本中:添加两个函数:“date\u default\u timezone\u set('Etc/UTC')”“gethostbyname('ssl://smtp.gmail.com“)”作为“$mail”的值-

白弘伟
2023-03-14

这个代码对我有用

$mail = new PHPMailer(true); // create a new object

我评论了这行/$mail-

 $mail->SMTPDebug = 4; 
 $mail->SMTPAuth = true; // authentication enabled

你必须使用tls whith端口587

 $mail->SMTPSecure = 'tls'; // secure transfer enabled REQUIRED for Gmail
 $mail->Host = "smtp.gmail.com";
 $mail->Port = 587; 
 $mail->Mailer = "smtp";
 $mail->isHTML(true);
 $mail->Username = "yourmail@gmail.com";
 $mail->Password = "yourpassword";
 $mail->From="yourmail@gmail.com";
 $mail->FromName="YOUR NAME";
 $mail->Subject = $subject;
 $mail->Body = $body;
 $mail->addAddress("somemail@gmail.com");

 if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
 } else {
   echo "Email Sent";
 }

另外,当你使用gmail时,你会转到具有帐户访问权限的应用程序,并设置允许不太安全的应用程序: ON

GMAIL配置

酆乐湛
2023-03-14

试着设置你的

$mail-

$mail-

另外,为您的google帐户创建应用程序密码,并使用它在$mail中交换您的密码-

 类似资料:
  • 我在输出在文件中创建的日期时遇到问题。 我一直在遵循一个关于如何创建真正基本的CMS平台的教程,帮助我了解和的一些基础知识,在我试图输出页面创建日期之前,一切都进展顺利。 这就是我得到的错误 现在,当我删除我的中的第22行时,它输出数据库中的完整日期,即,但我试图格式化它以显示像. 这是我的文件中的代码 然后在我的在我显示这个的地方,我有这个代码来格式化日期。 现在从我的中删除这个不会做任何事情,

  • 当出现错误时,我的java代码中会抛出异常。然后,我使用jdb运行代码,以便在出现异常时,可以看到代码的状态并进行调试。对于我抛出的所有异常,我放入了一个有用的字符串消息。然而,当jdb捕捉到异常时,它不会同时打印这个字符串。如何打印此字符串? 我已经在谷歌上搜索并阅读了文档,但我不知道怎么做。 如果我有测试课程: 并通过jdb运行它:

  • 问题内容: 为什么Java中的某些异常未被捕获?这是代码由于没有处理的异常而完全失败。(Java版本1.4)。 我得到一个 但这有效 我懂了 我以为捕获异常会捕获所有异常?如何捕获Java中的所有异常? 问题答案: 因为某些异常不是源自-例如和。 基本上,类型层次结构是: 只能抛出派生类,因此,如果您抓住,那实际上就可以抓住一切。 ,以及任何异常,从获得 其他 比那些源自数作为 检查的异常 -他们

  • 我对Java线程、Runnable等相当陌生。因此,我想知道为什么下面的代码没有捕获异常? 阅读有没有一种方法可以使Runnable的run()引发异常,我收集到: "...如果您的run()方法确实是Thread的目标,则抛出异常是没有意义的,因为它是不可观察的;抛出异常与不抛出异常(无)具有相同的效果。"(@erickson) 我应该检查Runnable.run()方法中的异常。 为什么会这样

  • 为什么Java中的一些异常不被捕获?这是完全失败的代码,有一个未处理的异常。(Java版本1.4)。 我在线程“main”java中得到了一个 但这行得通 我在java中没有发现任何方法错误。lang.NoSuchMethodError: 我以为捕获异常会捕获所有异常?如何捕获java中的所有异常?