如何伪造电子邮件
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 4.1,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何伪造电子邮件
Symfony邮件程序的默认行为是立即发送电子邮件消息。ob娱乐下载但是,您可能希望避免与电子邮件服务器的通信对性能的影响,这可能会导致用户在发送电子邮件时等待加载下一页。这可以通过选择“假转盘”而不是直接发送电子邮件来避免。
这使得邮件发送器不尝试发送电子邮件消息,而是将其保存在诸如文件之类的地方。然后,另一个进程可以从线轴读取并负责发送线轴中的电子邮件。目前只支持假脱机到文件或内存。
使用内存的线轴
当您使用假脱机将电子邮件存储到内存中时,它们将在内核终止之前发送。这意味着,只有当整个请求在没有任何未处理的异常或错误的情况下执行时,才会发送电子邮件。要配置此spool,请使用以下配置:
- YAML
- XML
- PHP
1 2 3 4
#配置/包/ swiftmailer.yamlswiftmailer:#……线轴:{类型:内存}
使用文件的Spool
当您使用文件系统进行假脱机时,Symfony将在给定的路径中为每个邮件服务创建一个文ob娱乐下载件夹(例如。“default”表示默认服务)。此文件夹将包含线轴中每个电子邮件的文件。所以确保这个目录可以被Symfony(或者你的webserver/php)写入!ob娱乐下载
为了使用带有文件的spool,请使用以下配置:
- YAML
- XML
- PHP
1 2 3 4 5 6
#配置/包/ swiftmailer.yamlswiftmailer:#……线轴:类型:文件路径:/ / spooldir /路径
提示
如果希望将假脱线存储在项目目录中的某个位置,请记住可以使用% kernel.project_dir %
参数引用项目的根目录:
1
路径:“% kernel.project_dir % / var / spool”
现在,当你的应用程序发送一封电子邮件时,它不会实际发送,而是添加到线轴。从线轴发送消息是单独完成的。在spool中有一个控制台命令来发送消息:
1
$PHP bin/console swiftmailer:spool:send——env=prod
它有一个选项来限制要发送的消息数量:
1
$PHP bin/console swiftmailer:spool:send——message-limit=10——env=prod
您还可以设置时间限制,单位为秒:
1
$PHP bin/console swiftmailer:spool:send——time-limit=10——env=prod
在现实中,您很可能不希望手动运行此命令。相反,控制台命令应该由cron作业或计划任务触发,并定期运行。
谨慎
当您使用SwiftMailer创建消息时,它会生成一个Swift_Message
类。如果swiftmailer
服务是惰性加载的,它会生成一个名为Swift_Message_ < someRandomCharacters >
.
如果使用内存线轴,此更改是透明的,没有影响。但是当使用文件系统假脱机时,消息类被序列化在一个具有随机类名的文件中。问题是这个随机的类名在每次缓存清除时都会改变。因此,如果您发送邮件,然后清除缓存,消息将不会是不可序列化的。
在下一次执行时swiftmailer:线轴:发送
将引发一个错误,因为类Swift_Message_ < someRandomCharacters >
已经不存在了。
解决方案是使用内存线轴或加载swiftmailer
无懒惰的
选项(见懒惰的服务).