PHPMailer问题

时间:2011-06-14 10:37:20

标签: php email phpmailer

好的,所以我已经下载了PHP Mailer's课程,需要使用require_once,然后创建一个发送邮件的功能:

public function sendMail($to, $subject, $body) { 
            $mail = new phpmailer;

            $mail->IsSMTP(); // set mailer to use SMTP
            $mail->SMTPAuth = true;
            $mail->Username = 'USERNAME';
            $mail->Password = 'PASSWORD';
            $mail->Port = 465;
            $mail->SMTPSecure = 'SSL';
            $mail->From = "EMAIL";
            $mail->FromName = "FROM NAME";
            $mail->Host = "smtp.gmail.com;";  // specify main and backup server

            if(is_array($to)) {
                foreach($to as $x) {
                    $mail->AddAddress($x);
                }
            } else {
                $mail->AddAddress($to);
            }

            $mail->AddReplyTo("REPLY EMAIL", "REPLY NAME");
            $mail->WordWrap = 50;    // set word wrap

            $mail->IsHTML(true);    // set email format to HTML
            $mail->Subject = $subject;
            $mail->Body = $body;

            if(!$mail->Send()){
                return false;
            }
        }

当我去做时(它在$ core类中)

if($core->sendMail('MYEMAIL@gmail.com', 'Something', 'Some body')) {
        echo 'Mail sent';
    } else {
        echo 'Fail';
    }

它返回失败。脚本中的代码包含正确的信息,我刚刚使用占位符在此处发布。

2 个答案:

答案 0 :(得分:2)

        if(!$mail->Send()){
            return false;
        }

应该是

        if(!$mail->Send()){
            return false;
        } else {
            return true;
        }

因为函数内部未指定返回值时,默认情况下函数返回false。

你也可以使用更清洁的版本:

        return $mail->Send();

答案 1 :(得分:1)

$mail包含错误消息,请执行以下操作:

if (!$mail->Send()) {
    throw new Exception($mail->ErrorInfo);
}

而不只是返回“false”。