gpt4 book ai didi

php - 使用 Yii2 扩展通过 swiftmailer 发送电子邮件

转载 作者:可可西里 更新时间:2023-11-01 00:58:00 24 4
gpt4 key购买 nike

我正在做一个项目,我想测试发送给用户的电子邮件,但到目前为止我还没有成功设置它。我正在使用 Codeception 并在 Vagrant 中运行它。我现在想做什么:

return \Yii::$app->mailer->compose()
->setFrom($from)
->setTo($to)
->setSubject('Welcome')
->send();

我有一个 main-local.php,它看起来像这样:

'mailer'=> ['class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'localhost',
'port' => 1025,
'useFileTransport' => false,
],

起初我遗漏了 'useFileTransport' => false,然后我将它添加到 'transport' 之前并尝试将它移到 'transport' 中,正如您现在看到的,但它是一样的。文件/电子邮件在项目中创建为 .eml 文件,但没有发送邮件。我尝试设置 mailcatcher ( http://mailcatcher.me/ ),实际上它起作用了,但如果我可以更改配置,而不是使用不同的方法和更改代码,邮件将被发送到我想要的地方,那就太好了它。 (我也尝试使用端口 1080,所以不是这样。)

如有任何帮助,我们将不胜感激。如果您需要更多信息,请告诉我!

更新:我发现我有一个不同的配置文件,我实际上可以在其中使用 'useFileTransport' => false,然后它不会在项目中创建文件/电子邮件,但仍然不发送它。我将 main-local.php 中显示的设置复制到此配置文件中,将 'useFileTransport' => false 移到 'transport' 之前,但我仍在寻找发送这些电子邮件的方法

最佳答案

$useFileTransportyii\swiftmailer\Mailer 类的一个属性,所以它不属于 transport 部分。

如果您的邮件程序配置如下,它将尝试通过 SMTP 投递邮件到在端口 1025 上的本地主机上运行的邮件服务器:

'mailer'=> [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'localhost',
'port' => 1025,
],
],

这对我来说听起来有点不寻常,因为 SMTP 的默认端口是 25

确保 SMTP 服务器确实在该端口上运行。例如。通过使用 telnet 命令:

telnet localhost 1025

它应该给你这样的东西:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 your.servername ESMTP Postfix

通过键入 quit 退出 SMTP session ,然后按回车键。

您还可以检查通常位于 /var/log/mail.log 的邮件服务器日志文件。您可以使用

查看正在记录的消息
tail -f /var/log/mail.log

当您尝试发送它们时。

关于php - 使用 Yii2 扩展通过 swiftmailer 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35745615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com