由于网络管理员阻止了与smtp服务器(smtp.google.com)
的直接连接,我如何在localhost
上配置PHPMailer通过代理连接发送电子邮件。
如果有PHPMailer的替代品可以使用代理,也请指导我,以防无法为PHPMailler配置代理。
请引导。
我正在使用以下代码发送电子邮件:
<?php
require 'send/PHPMailerAutoload.php';
$info = $_POST['msg1'];
$data = json_decode(stripslashes($info));
$email = $data->email;
$fName = $data->fName;
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'abc@gmail.com';
$mail->Password = '**********';
$mail->SMTPSecure = 'tls';
$mail->From = 'abc@gmail.com';
$mail->FromName = 'ABC';
$mail->addAddress($email, $fName);
$mail->addReplyTo('abc@gmail.com', 'ABC');
$mail->WordWrap = 50;
$mail->isHTML(true);
$mail->Subject = 'demo msg';
$mail->Body = "hello friend!!";
if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message sent!";
}
?>
PHPMailer没有明确的SMTP代理支持,但这并不意味着你不能使用代理。您需要了解这个问题,它使用socat
创建代理隧道,并使用PHPMailer进行发送。
在域名之前定义协议可以防止与SMTP服务器的连接被HTTP代理卡住。
例如:
$mail->主机='tls://smtp.office365.com';