symfony 发送传输用户名,而不是发送者的电子邮件|塞姆丰尼·梅勒

kd3sttzy  于 2023-02-24  发布在  其他
关注(0)|答案(1)|浏览(134)

使用Symfony Mailer发送电子邮件时,我遇到了将传输用户名(电子邮件)作为发件人接收的问题,而不是在****from()****函数中写入的电子邮件。
下面是代码:

use Symfony\Component\Mailer\Bridge\Google\Transport\GmailSmtpTransport;
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;

$transport = new GmailSmtpTransport($username, $password);
$mailer = new Mailer($transport);

$email = (new Email())
    ->from(new Address($data["email"]))
    ->to("dest@gmail.com")
    ->subject(sprintf("Apply for a %s.", ucfirst($data["subject"])))
    ->html($template);

$mailer->send($email);

你知道怎么修吗?

wpcxdonn

wpcxdonn1#

为了解决此问题,我找到了以下解决方案:
1.请使用不覆盖From标头的其他SMTP服务器。您可以尝试使用其他电子邮件服务提供商或配置自己的SMTP服务器以避免此问题。
1.设置电子邮件中的Sender标头。此标头指定应用作邮件实际发件人的电子邮件地址,而From标头指定发送邮件的人员或实体的名称和电子邮件地址。可以使用Symfony\Component\Mime\Email类的sender()方法设置Sender标头。
例如:

use Symfony\Component\Mime\Email;

$email = (new Email())
->from(new Address($data["email"]))
->to('dest@gmail.com')
->subject(sprintf("Apply for a %s.", ucfirst($data["subject"])))
->html($template)
->sender(new Address($data["email"]));

1.配置SMTP服务器以允许使用不同的From地址发送电子邮件。这可能需要修改电子邮件服务提供商或SMTP服务器的配置以允许使用不同的From地址发送电子邮件。有关如何执行此操作的详细信息,可以参阅电子邮件服务提供商或SMTP服务器的文档。
请注意,即使您设置了Sender标头或将服务器配置为允许使用其他From地址发送电子邮件,某些SMTP服务器仍可能覆盖From标头。在这种情况下,您可能需要使用不覆盖From标头的其他SMTP服务器。

相关问题