问题标签 [symfony-mailer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何调试 Symfony Mailer 交付问题?
我正在处理我的第一个 Symfony 5 项目,并且很难使用内置的MailerInterface
. 我之前在 Symfony 3 中使用过 Swift Mailer,之前从未遇到过类似的问题。
如果MAILER_DSN
格式不正确,则会抛出异常并显示在 Symfony 调试器页面上,例如The "invaliddsn" mailer DSN must contain a scheme
……因此,配置的 DSN 似乎smtp://user:pass@smtp.example.com:25
是正确的。在其他邮件应用程序中使用相同的凭据、主机和端口是没有问题的。
但是,当使用此代码时,不会显示错误/异常,并且我根本没有收到任何邮件。当然,我已经仔细检查了日志(没有错误),接收者垃圾邮件文件夹(没有)。指定 SMTP 服务器或 sendmail 没有任何区别。
Symfony 文档只解释了如何处理异常,但在我的例子中没有抛出异常。
虽然在 Symfony 中还有很多关于邮件问题的其他问题,但其中大多数都涉及旧的 Swift Mailer 或其他特定问题。
如何确定邮件是已发送但未收到还是根本未发送?
php - 在没有 symfony 框架的情况下使用 symfony/mailer 组件
我正在开发一个不使用任何框架的项目,我想使用Symfony Mailer组件来处理发送电子邮件。
安装部分(composer require
)处理得很好,所有内容都包含在我的代码中,没有任何错误。但是,我仍然有一个问题:组件的文档似乎只是为了将它与 symfony 框架一起使用而编写的。实际上,它指的是我的应用程序中显然不存在的自动加载配置文件。
这个实现似乎非常棘手,我想知道你们中是否有人已经面临同样的问题以及您想出了什么解决方案?
symfony - Symfony 5.3 Mailer 设置环境变量无法正确读取
在 Symfony 5.3 项目中,我使用 Mailer (..\Symfony\Component\Mailer\MailerInterface) 发送邮件。为了开发,我需要带有 composer 的“symfony/google-mailer”,并将其设置在 .env.local 中。假设用户名是“example@gmail.com”,密码是“0000”。
在 .env.local 我指定
导致错误
如文档中所述,我将用户名(“@”)中的一个特殊字符更改为它的 URL 编码形式,例如
然后导致错误
(显然 URL 编码没有像预期的那样工作(因为它没有被反转?))我尝试在 services.yaml 的参数中加载环境变量并使用参数来代替 - 但这也导致了第一个错误。
如果我将身份验证信息直接写入 MAILER_DSN env var,它就可以正常工作,没有问题,比如
所以这似乎是一个我无法从文档中弄清楚的语法问题。有什么提示吗?
php - symfony 邮件程序中的多个 smtp 服务器
我正在尝试使用 Symfony 邮件程序组件配置发送电子邮件。它与一个 DNS(我的 .env 文件中有)完美配合。但例如,我想拥有其中的 2 个。我该如何配置它?我在文档中没有发现任何明智的东西。
这是我的 mailer.YAML
我想要类似的东西:
但不幸的是,这样的选择是不可能的。
php - Symfony 中每个邮件传输的不同全局发件人
我只是想知道是否可以为 Symfony Mailer 组件中的每个 smtp 传输设置不同的全局发件人。
这是问题所在:我配置了 2 种不同的传输方式:
现在,当我使用第一个邮件传输时,它工作得很好
我也可以手动更改“发件人”地址:
但是当我切换到我的第二次传输时,我收到了关于 smtp 所有权的错误,如下所示:
发件人地址被拒绝:不归用户所有......”。
这是第二次传输的代码:
对于第二次传输,似乎没有重写全局发件人。
php - 单元测试 Symfony 5 Mailer:MessageLoggerListener 不可用
我想在 Symfony 5 的 Behat 测试中测试电子邮件传递。显然,SymfonyMailerAssertionsTrait
的 PHPUnit 包中有一个用于MessageLoggerListener
检查发送的电子邮件。按照本教程https://swag.industries/test-emails-with-symfony/,我针对我的 Behat 上下文调整了该特征。
不幸的是,该服务mailer.message_logger_listener
似乎在 Symfony 容器中不可用。无论我是否将其设置MAILER_DSN
为null://null
实际工作的交通工具。
我看到这个监听器正在文件中注册vendor/symfony/framework-bundle/Resources/config/mailer_debug.php
,这让我相信我必须以symfony/mailer
某种方式为包启用调试模式。但我还没有弄清楚这到底是怎么做的。
如何在我的测试环境中启用包MessageLoggerListener
?symfony/mailer
symfony5 - 将 Postmark 与 Symfony Mailer 集成的问题
我目前正在努力尝试将 Postmark 与 Symfony5 Mailer Bundle 一起使用。尽管文档似乎很清楚,但我无法发送任何电子邮件。
我的第一个困惑点是 Postmark 的建议 DSN 格式:
邮戳+smtp:// ID @default
似乎不清楚应该使用什么 ID,因为 SMTP 的邮戳提供了用户名和密码,以及访问密钥和秘密密钥(SMTP 令牌)。未按要求提供 ID。
有谁知道这里应该使用什么配置?
先感谢您!
typo3 - 如何在 TYPO3 中配置两个邮件服务器(故障转移)
如Symfony Docs中所述,可以为邮件服务器添加故障转移配置:
Symfony 的邮件程序通过一种称为“故障转移”的技术支持高可用性,以确保即使一个邮件程序服务器出现故障也能发送电子邮件。
故障转移传输配置有两个或多个传输和故障转移关键字:
MAILER_DSN="failover(postmark+api://ID@default sendgrid+smtp://KEY@default)"
故障转移传输开始使用第一个传输,如果失败,它将使用下一个传输重试相同的传递,直到其中一个成功(或直到所有传输都失败)。
是否可以在 TYPO3 中使用和配置此功能?如果是这样,怎么做?
可以在 TYPO3 中配置其他配置,例如Symfony 邮件程序的TLS Peer Verification
( Symfony Docs ) 吗?
默认情况下,SMTP 传输执行 TLS 对等验证。此行为可使用 verify_peer 选项进行配置。尽管出于安全原因不建议禁用此验证,但在开发应用程序或使用自签名证书时它可能很有用:
$dsn = 'smtp://user:pass@smtp.example.com?verify_peer=0';