PhpMailer与SwiftMailer?

Pau*_*cks 58 php email attachment phpmailer swiftmailer

我正在构建一个相当简单的PHP脚本,需要发送一些附件的电子邮件.我找到了这两个库来做到这一点.两者都有明显优势吗?或者我应该随机选择一个并完成它?

ben*_*ley 52

我打算说PHPMailer不再开发了,Swift Mailer也是.但是当我用Google搜索时......

https://github.com/PHPMailer/PHPMailer

这表明它正在重新开展工作.

我经常使用PHPMailer,它始终坚实可靠.由于上述原因,我最近开始使用Swift Mailer,它也没有给我带来任何麻烦.

现在PHPMailer再次开发,我想我可能会尝试新版本.

所以,我的回答是两者都有能力,而且没那么重要 - 选择一个,学习它,使用它.两者都提供了超过mail()的巨大优势,并抽象出电子邮件的细微差别,以便您可以继续使用您真正想要开发的任何内容.

  • 为了清楚(我是维护者),PHPMailer现在[在github上](https://github.com/PHPMailer/PHPMailer)住在这个答案的地址,而不是旧的sourceforge,谷歌代码回购或我的个人叉(Synchro). (8认同)
  • PHPMailer现在已转移到GitHub.新链接https://github.com/Synchro/PHPMailer (3认同)

M A*_*onu 30

无论功能如何,它们的适用许可证都各不相同:

PHPMailer - LGPL 2.1(https://github.com/PHPMailer/PHPMailer)

SwiftMailer - MIT许可证(https://github.com/swiftmailer/swiftmailer)

  • 有人的upvote清除了:)无论如何,两个许可证之间的主要区别是:LGPL是"感染",这意味着如果你使用它,你也有可能(L)GPL你自己的工作.GPL(并且,根据具体情况,LGPL)实际上不包括在封闭源项目中的使用.麻省理工学院是"可以做任何事"的许可证,用我的代码做你想要的事情除了假装代码是你的 (11认同)
  • IMO匿名投票似乎毫无根据 - 这是一个好点.但是如果你能指出两个许可证之间的任何重要差异,那么认为这个帖子会更有价值......? (9认同)
  • MA Hossain Tonu关于LGPL"感染"的评论是完全错误的.GPL和LGPL之间的区别正是如此:GPL是一个强大的Copyleft许可证,这意味着您的所有代码也必须更改为与GPL兼容的许可证,而LGPL仅包含分布式库中代码的Copyleft部分,因此不是您的应用代码.对于像PHPMailer这样的库,LGPL完全没问题,与你自己的代码无关,这个版本不受**的影响*. (8认同)
  • 我可以知道为什么我会投票吗?当我们想要使用'em'作为可分发项目时,许可有很大的不同. (4认同)

tro*_*skn 9

还有Zend_Mail.如果我今天必须选择一个新项目,我会认真考虑.

  • 它似乎不能单独使用它,我认为你需要使用整个zend库,它在最小版本中压缩超过6 MB. (9认同)

She*_*ndu 7

看了两个我认为SwiftMailer有一个比PHPMailer更好的界面,正如有人指出Zend_Mail也是另一个好选择,特别是如果你正在使用其他Zend组件.如果您使用同一框架中的所有内容,它会让生活变得更加轻松.


dar*_*mon 6

我在很多项目上都使用过PHPMailer,从来没有遇到过问题.它功能齐全,并且有很好的文档.

我从未听说过Swiftmailer所以我看了一下网站.这似乎是一个很好的解决方案.

如果你的需求很简单,那就随便选择一个.


Mar*_*aio 5

谷歌趋势:swiftmailer正在增长,但phpmailer仍然非常强大.

我会选择Swiftmailer,因为文档清晰简单.Phpmailer网站/文档有点乱(至少他们看起来如此).


编辑:在尝试了两者之后(并且针对SwiftMailer没有输出任何类型提示的托管问题敲打我的脑袋)我完全改变了主意,我肯定会使用PHPMailer至少有一个很好的理由:它更容易调试如果您有任何问题.

SwiftMailer和PHPMailer都提供了调试选项(带有插件的SwiftMailer和打开的PHPMailer SMTPDebug = 2),但SwiftMailer由数百个小文件构成,与PHPMailer构成的3个文件相比,这些文件使SwiftMailer更难调试.

关于文档,PHPmailer文档看起来不那么花哨,但它有你所需要的一切:简单的教程,例子

  • > SwiftMailer 由数百个小文件组成,与 PHPMailer 组成的 3 个文件相比,这些小文件使 SwiftMailer 更难调试。可怕的推理。文件数量不应成为使用库或调试的决定因素,因为调试不涉及摆弄文件,它涉及逐步执行执行流程。 (2认同)