使用PHPMailer使用gmail进行身份验证

时间:2020-11-12 17:37:48

标签: php email smtp gmail phpmailer

我正在尝试使用PhpMailer发送带有表单的电子邮件,但效果不佳。 使用localhost xampp,它可以正常运行,但是当上传到我的网站时会导致错误, 经过检查后,我知道这是因为gmail阻止了我(我已经在gmail上启用了安全性较低的应用) 它似乎唯一可行的方法是从代码中删除isSmtp(),但我认为这不是一个好主意。 有什么建议吗? 下面的代码:

my $proc = run 'my-command', 'and', 'args', :in;
$proc.in.say('Hello world!');
$proc.in.close;

出现以下错误

    if (array_key_exists('attachment', $_FILES)) {
    $img_name = $_FILES['attachment']['name'];
    $upload = tempnam(sys_get_temp_dir(), hash('sha256', $_FILES['attachment']['name']));
    $uploadfile = $_SERVER['DOCUMENT_ROOT'].'/'.$img_name;
    if (move_uploaded_file($_FILES['attachment']['tmp_name'], $uploadfile)) {
        if (!$err) {
            $mail = new PHPMailer(true);
          //  $mail->isSMTP();
            // $mail->SMTPDebug = 3;
            $mail->SMTPSecure = 'tls';
            $mail->Host = 'smtp.gmail.com';
            // set a port
            $mail->Port = 587;
            $mail->SMTPAuth = true;
            // set login detail for gmail account
            $mail->Username = '******';
            $mail->Password = '********';
            $mail->CharSet = 'utf-8';
            // set subject
            $mail->setFrom($email, $username);
            $mail->addAddress($to);
            $mail->addReplyTo($email, $username);
            $mail->addAttachment($uploadfile, 'My uploaded image');
            $mail->IsHTML(true);
            $mail->Subject = 'Contact form: Testing Feedback';
            $mail->Body = $reason;
            if (!$mail->send()) {
                $msg .= "Mailer Error: " . $mail->ErrorInfo;
            } else {
                $msg .= "Message sent!";
            }
        }
    } else {
                $msg .= 'Failed to move file to ' . $uploadfile;
    }
}

0 个答案:

没有答案