如何获取Swiftmailer已发送邮件的字节大小?
获取已发送邮件字节大小的几种思路
嘿,我最近在琢磨怎么获取已发送邮件的字节大小,搜了一圈后整理了几个可行的方案,和大家聊聊我的想法:
- 发送前手动计算:可以用
strlen(body)加上所有附件的文件大小之和。这个方法的优势是不用生成完整的邮件内容,性能表现会比较好,但要注意不能漏掉邮件头的字节数——毕竟邮件头也是邮件整体的一部分,要是只算正文和附件,结果可能会有偏差。 - 转换为字符串后统计长度:调用
strlen($message->toString())来获取完整邮件的字节数。这个方法的准确性很高,因为拿到的是最终邮件的完整内容长度,但缺点也很明显,正如我担心的,性能会比较差,尤其是当邮件带有大附件时,把整个邮件对象转换成字符串的过程会消耗不少系统资源。 - 寻找插件或内置方法:我一直在想,有没有现成的插件或者邮件库的内置方法可以直接获取这个大小?毕竟手动计算容易出错,转换字符串又费性能,如果有更优雅的原生方案就好了,不过目前还没找到合适的,不知道有没有小伙伴了解相关的工具?
大家觉得这几个方案里哪个更实用?或者有没有其他我没考虑到的思路?欢迎一起讨论!
内容的提问来源于stack exchange,提问作者RVandersteen
相关产品推荐
相关产品推荐

