如何配置PHPMailer通过代理连接到smtp.google.com


How to configure PHPMailer to connect to smtp.google.com via proxy

由于网络管理员阻止了与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';