Google应用程序-Gmail无法设置发件人。通过Swiftmailer SMTP传输发送时,Gmail会替换发件人地址(PHP)。

4

您好,感谢您提前提供的任何帮助。

我正在使用swiftmailer,SMTP传输方式从我的PHP脚本发送电子邮件。

发送消息很好。 它有效。

问题在于,无论我将FROM,REPLYTO,SENDER设置为什么,电子邮件都会以GMAIL邮箱(ME-me@mydomain.com)的形式出现。

$transport = Swift_SmtpTransport::newInstance('imap.gmail.com', 465,'ssl')
    ->setUsername($login)
    ->setPassword($password)
    ;
$message = Swift_Message::newInstance($subject)
    ->setFrom(array('test@testdomain.com' => 'test mcttest'))
    ->setReplyTo(array('test@testdomain.com' => 'test mcttest'))
    ->setSender('test@testdomain.com')
    ->setTo(array($to))
    ->setBody(wordwrap($body, 70))
    ->setContentType('text/plain')
    ;

所以电子邮件发送成功了,但发件人不是 TEST-test@testdomain.com 而是ME-me@mydomain.com
我切换到一个单独的(非 Gmail)SMTP 服务器进行测试,电子邮件顺利发送,没有任何问题... 我认为这是一个 Gmail 的问题。
有人知道如何解决这个问题吗?
2个回答

2

是的,Gmail会将发件人电子邮件地址更改为与您正在验证的帐户相同。除了成为Google Apps的付费客户,没有其他解决方法。


我们使用付费的Google Apps并获得相同的东西。我目前正在设置自己的SMTP服务器,以便在我们的GMail帐户中执行VERP操作。但我认为我需要使用正确的SPF记录配置我的DNS,以便可以从smtp.gmail.com和我的SMTP服务器发送邮件。 - MikeJansen

0
有趣的是,我也遇到了同样的问题。但是作为一点见解,我认为这实际上是一个Swiftmailer问题。
还有其他库和框架(Codeignitor在我脑海中浮现),可以让您使用Googlemail的SMTP服务器,同时将发件人地址伪装成您选择的电子邮件地址。

1
你确定吗?我认为这是谷歌的事情,如果你通过smtp.gmail.com发送邮件,它会“清理”所有的发件人/回复信息。我可以理解对于完全不同的地址(账户是me@gmail.com,而你试图发送到you@gmail.com),但对于加号地址(me+alternate@gmail.com)或使用you@mydomain.com作为回复的Google应用域(me@mydomain.com账户),应该是允许的。 - MikeJansen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接