为了账号安全,请及时绑定邮箱和手机立即绑定

当我尝试使用phpmailer发送邮件时,我收到错误

当我尝试使用phpmailer发送邮件时,我收到错误

PHP
慕慕森 2022-09-25 20:03:06
无法实例化邮件功能。无法发送邮件邮件错误:无法实例化邮件功能。require 'PHPMailer/PHPMailerAutoload.php';$mail =new PHPMailer;$mail->HOST ='localhost';$mail->PORT = 25;$mail->SMTPAuth = true;$mail->SMTPSecure = 'tls';$mail->Username = 'Username';$mail->Password = 'Pass';$mail->setFrom('info@zoeticpolymers.com');$mail->addAddress('nitesh54546@gmail.com','Nitesh');$mail->AddReplyTo("info@zoeticpolymers.com");$mail->isHTMl(true);$mail->Subject = 'PHP Mailer Subject';$mail->Body = '<h1>You are Welcome Here.....</h1>';if(!$mail->send()){    echo 'Message couldnot be sent';      echo 'Mailer Error: ' . $mail->ErrorInfo; die;}else{    echo 'Message has been sent'; die;}
查看完整描述

3 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

你试过用smtp吗?无法实例化邮件功能错误的原因可能有多个原因。当您尝试发送大型电子邮件并且PHP错误日志包含消息无法发送消息时:太大,那么您的邮件传输代理(Sendmail,postfix,Exim等)拒绝传递这些电子邮件。


解决方案是将 MTA 配置为允许更大的附件。但这并不总是可能的。另一种解决方案是使用 SMTP。您将需要访问 SMTP 服务器(如果您的 SMTP 服务器需要身份验证,则需要登录凭据),请考虑给定的示例。


$mail->IsSMTP();

$mail->Host = "smtp.example.com";

// used only when SMTP requires authentication  

$mail->SMTPAuth = true;

$mail->Username = 'smtp_username';

$mail->Password = 'smtp_password';


查看完整回答
反对 回复 2022-09-25
?
当年话下

TA贡献1890条经验 获得超9个赞

您的错误:您使用主机作为本地主机,SMTP.mail.com 更改邮件到您的服务器


您正在使用旧版本的PHPMailer也让我通过键入正确的一个来帮助您


对于此示例,您应该从 PHP 梅勒 GitHub 非供应商处下载


use PHPMailer\PHPMailer\SMTP;

use PHPMailer\PHPMailer\Exception;


$mail = new PHPMailer(true);


try {

    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                     

    $mail->isSMTP();                                   

    $mail->Host = 'smtp.gmail.com';     //for Gmail               

    $mail->SMTPAuth   = true;             


    $mail->Username   = 'user@gmail.com';                   

    $mail->Password   = 'your Gmail pass';              



    $mail->Port       = 587;                                    // TCP port



    $mail->setFrom('from@example.com', 'Mailer');

    $mail->addAddress('joe@example.net', 'Joe User');    



    $mail->isHTML(true);                                  

    $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';


    $mail->send();

    echo 'Message has been sent';

} catch (Exception $e) {

    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";

}```





**Your error was that you used HOST as localhost and older version of PHPMailer.



But use default mail() but change the PHP version to 7.3 since it's better now.**


查看完整回答
反对 回复 2022-09-25
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

如果您的代码看起来不错,请尝试在服务器上安装 PostFix。

sudo apt-get install postfix

它在数字海洋上为我工作。


查看完整回答
反对 回复 2022-09-25
  • 3 回答
  • 0 关注
  • 201 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号