PHPMailer:动态gmail转发

时间:2015-08-05 14:21:03

标签: php email gmail phpmailer gmail-api

我不知道我想做什么是可能的(但发现它本身并不有用)。

我无法使用我公司的Gmail帐户" real.business@gmail.com"直接用PHPMailer。但是,我可以使用中间gmail帐户" fake.12345.account@gmail.com"哪些可以拥有"不太安全的应用程序"已启用,允许SMTP验证。

但是我不希望从这个假的12345.account@gmail.com帐户发送电子邮件(看起来不会特别专业) - 而是公司的Gmail帐户。

我可以将中间帐户的电子邮件发送到real.business@gmail.com;通过编辑PHPMailer参数,或通过自动将来自fake.12345.account@gmail.com的电子邮件转发到公司帐户。

问题在于real.business@gmail.com如何能够成功地通过电子邮件发送电子邮件(或者至少看起来像是发件人),如最初的预期。

到目前为止的代码

$Mail = new PHPMailer();
$Mail->IsSMTP(); // Use SMTP
$Mail->Host        = "smtp.gmail.com"; // Sets SMTP server for gmail
$Mail->SMTPDebug   = 0; // 2 to enable SMTP debug information
$Mail->SMTPAuth    = TRUE; // enable SMTP authentication
$Mail->SMTPSecure  = "tls"; //Secure conection
$Mail->Port        = 587; // set the SMTP port to gmail's port
$Mail->Username    = 'fake.12345.account@gmail.com'; // gmail account username
$Mail->Password    = 'a_password'; // gmail account password
$Mail->Priority    = 1; // Highest priority - Email priority (1 = High, 3 = Normal, 5 =   low)
$Mail->CharSet     = 'UTF-8';
$Mail->Encoding    = '8bit';
$Mail->Subject     = 'Mail test';
$Mail->ContentType = 'text/html; charset=utf-8\r\n';
$Mail->From        = 'testing.num.101@gmail.com'; //Your email adress (Gmail overwrites it anyway)
$Mail->FromName    = 'Testing Again';
$Mail->WordWrap    = 900; // RFC 2822 Compliant for Max 998 characters per line

$Mail->addAddress($personEmail); // To: the PERSON WE WANT TO EMAIL
$Mail->isHTML( TRUE );
$Mail->Body    = ' Good news '.$personName.'! The email sent correctly!';
$Mail->AltBody = 'This is a test mail';
$Mail->Send();
$Mail->SmtpClose();

if(!$Mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $Mail->ErrorInfo;
exit;
}

所以问题是:没有将电子邮件从fake.12345.account@gmail.com发送到$ personEmail(这是琐碎的),而是如何从fake.12345.account@gmail发送电子邮件。 com到real.business@gmail.com使real.business@gmail.com将消息转发给$ personEmail

2 个答案:

答案 0 :(得分:0)

PHPMailer用于发送。

您要做的是转发电子邮件。这意味着接收电子邮件然后通过发送。

你需要的是php中的某种 IMAP 客户端,这样你就可以读取关于fake.12345.account@gmail.com的电子邮件(也许是real.business@gmail.com)。然后保存他们的正文和标题并将其传递给PHPMailer。然后,您可以使用 PHPMailer 通过real.business@gmail.com 发送电子邮件。

答案 1 :(得分:0)

您所描述的内容实际上是中继,通常是在邮件服务器配置(而不是邮件)中配置的,但您无法访问gmail中的任何内容。

你可以在gmail中设置允许的别名,但我猜这些不允许与现有的gmail帐户名重叠,因为这将是一个主要的安全漏洞。为什么不启用"不太安全的应用程序"在主要帐户?它并不是说它实际上不那么安全 - 如果它更好,因为使用OAuth2的设置非常复杂和令人不快......

那就是说,你可能对this PRassociated docs感兴趣,而不是试图做所有这些伪造。很可能xoauth分支将被合并到master并在没有任何进一步更改的情况下作为PHPMailer 5.2.11发布,如果你可以尝试一下它会非常有用。