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

如何使用 phpmailer 类发送邮件?

如何使用 phpmailer 类发送邮件?

PHP
达令说 2022-06-17 14:31:00
我创建了一个 phpMailer 类并将其调用到我的 register.php 文件中。但是没有找到如何从课堂发送电子邮件的方法。这是我的课:class mailSend {    public function sendMail($email, $message, $subject)    {        require_once('PHPMailer/src/Exception.php');        require_once('PHPMailer/src/PHPMailer.php');        require_once('PHPMailer/src/SMTP.php');        $mail = new PHPMailer\PHPMailer\PHPMailer();        try {        $mail->SMTPDebug = 0;        $mail->isSMTP();        $mail->Host = "smtp.gmail.com";        $mail->SMTPAuth = true;        $mail->Username = "email@gmail.com";        $mail->Password = "password";        $mail->Port = 587;        $mail->setFrom('admin@example.com', 'Mailer');        $mail->addAddress($email);        $mail->addReplyTo("user@gmail.com", "Alias");        $mail->CharSet = "UTF-8";        $mail->isHTML(true);        $mail->Subject = $subject;        $mail->Body = $message;        $mail->send();            $success['success'] = "Mail sent.";        } catch (Exception $e) {            $errors['mail'] = "Failed. Mailer error: {$mail->ErrorInfo}";        }    }}这是 usaqe:require "modules/mailer.php";$email_send = new mailSend();$email_send->sendMail($email,$message,$subject);这是我的问题部分,我正在尝试在注册时向用户发送确认链接但不知道该怎么做,我尝试了几种方法但无法使其工作:这是我尝试发送并出现错误的方式:注意:未定义变量:第 115 行 D:\Wamp\www\html\modules\register.php 中的消息require "modules/mailer.php";$email_send = new mailSend();$email_send->sendMail($email,$message,$subject);$subject = "Please verify email!";$message = "Thanks for signing up!<br>            Please click on the link below:<br><br>            <a href=".$url.">".$url."</a>";
查看完整描述

1 回答

?
MM们

TA贡献1886条经验 获得超2个赞

您需要在使用它们之前定义变量!


require "modules/mailer.php";

$email_send = new mailSend();


$subject = "Please verify email!";

$message = "Thanks for signing up!<br>

            Please click on the link below:<br><br>

            <a href=".$url.">".$url."</a>";

$email_send->sendMail($email,$message,$subject);

要让 PHPMailer 抛出异常,您需要通过传递true给构造函数来询问它:


$mail = new PHPMailer\PHPMailer\PHPMailer(true);

现在要从你的类中得到响应,你需要返回一些东西,所以把你的 send 函数的结尾改成这样:


$result = [];

$mail->send();

    $result['success'] = true;

    $result['message'] = "Mail sent.";

} catch (Exception $e) {

    $result['success'] = false;

    $result['message'] = "Failed. Mailer error: {$mail->ErrorInfo}";

}

return $result;

然后当你调用你的函数时:


$result = $email_send->sendMail($email,$message,$subject);

if ($result['success']) {

    echo $result['message'];

    //Do whatever else you want to do on success

} else {

    echo $result['message'];

}


查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信