PhpMailer против SwiftMailer?

Я создаю довольно простой PHP-скрипт, которому нужно будет отправить несколько писем с вложениями. Я нашел эти 2 библиотеки для этого.

Есть ли у одного из них существенные преимущества перед другим? Или я должен просто выбрать один наугад и покончить с этим?


person Paul Wicks    schedule 19.11.2008    source источник
comment
Ответы, действительно, немного ориентированы на мнения, но хорошо продуманные мнения, и я нашел их ценными, поскольку я принимаю подобное решение. Судя по количеству голосов, кажется, что другие также сочли это ценным.   -  person Jahmic    schedule 26.08.2015
comment
Половина вещей, наиболее полезных для меня на SO, не по теме. По многим из этих вопросов, закрытых как не по теме, я вижу, что это не по теме, но мне помогли комментарии. Может быть, вместо того, чтобы видеть, как пять разных модераторов хватаются за вопрос, чтобы закрыть его, мы можем увидеть, как они голосуют за изменение этой политики? Почему этот вопрос более заслуживает закрытия, чем 98% вопросов, размещенных на SO, которые похожи на то, что не так с этим кодом? или о том, как выполнить какую-то чрезвычайно конкретную задачу, которая никогда не будет актуальна для кого-либо еще?   -  person obe    schedule 05.08.2017
comment
Если вы посмотрите на github, вы увидите 7 тысяч звезд для SwiftMailer и сверху в разделе php.   -  person flik    schedule 28.12.2018
comment
а PHPMailer имеет более 12 тысяч звезд на github.   -  person flik    schedule 28.12.2018
comment
PHPMailer может использовать функцию mail(). SwiftMailer не может использовать функцию mail(), пока функция mail() все еще поддерживается PHP. Подробнее см. на github.com/swiftmailer/swiftmailer/issues/866 PHPMailer имеет больше разветвлений Снимался смотрел чем SwiftMailer. В PHPMailer 1361 проблема закрыта, 35 открыта. В SwiftMailer закрыто 558 выпусков, открыто 200. github.com/PHPMailer/PHPMailer github.com/swiftmailer/swiftmailer   -  person vee    schedule 05.08.2019


Ответы (7)


Я собирался сказать, что PHPMailer больше не разрабатывается, а Swift Mailer. Но когда я погуглил...

https://github.com/PHPMailer/PHPMailer

Это говорит о том, что над ним снова работают.

Я много использовал PHPMailer, и он всегда был надежным и надежным. Я недавно начал использовать Swift Mailer по вышеуказанной причине, и это тоже не доставило мне проблем.

Теперь, когда PHPMailer снова разрабатывается, я думаю, что, вероятно, попробую новую версию.

Итак, мой ответ заключается в том, что оба способны, и это не имеет большого значения — выберите один, изучите его, используйте его. Оба предлагают огромные преимущества по сравнению с mail() и абстрагируются от нюансов электронной почты, чтобы вы могли заниматься тем, что вы действительно пытаетесь разработать.

person benlumley    schedule 20.11.2008
comment
PHPMailer теперь переехал на GitHub. Новая ссылка github.com/Synchro/PHPMailer - person Dracs; 01.05.2013
comment
Чтобы было ясно (я сопровождаю), PHPMailer теперь находится на github по адресу, указанному в этом ответ, а не старый sourceforge, репозитории кода Google или мой личный форк (Synchro). - person Synchro; 25.02.2015

Какими бы ни были функции, они имеют различные лицензии:

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

SwiftMailer — лицензия MIT (https://github.com/swiftmailer/swiftmailer)

person M A Hossain Tonu    schedule 08.06.2014
comment
Могу я узнать, почему я получил отрицательный голос? Существуют большие различия в лицензировании, когда мы хотим использовать один из них для нашего распространяемого проекта. - person M A Hossain Tonu; 09.06.2014
comment
ИМО анонимное голосование против кажется необоснованным - это хороший момент. Но думаю, что этот пост был бы более ценным, если бы вы могли указать на какие-либо важные различия между двумя лицензиями...? - person Steve Chambers; 27.08.2014
comment
Кто-то проголосовал за это :) В любом случае основные различия между двумя лицензиями заключаются в следующем: LGPL заразительна, а это означает, что если вы ее используете, вы рискуете получить (L)GPL и свою собственную работу. GPL (и, в зависимости от обстоятельств, и LGPL) практически исключает использование в проектах с закрытым исходным кодом. MIT - это лицензия Can do Anything, делайте что хотите с моим кодом, кроме как притворяться, что код ваш - person M A Hossain Tonu; 27.08.2014
comment
Очень полезно - большое спасибо - person Steve Chambers; 27.08.2014
comment
Комментарий М. А. Хоссейна Тону о том, что LGPL заразительна, совершенно неверен. Разница между GPL и LGPL заключается именно в следующем: GPL — это лицензия с сильным авторским левом, то есть весь ваш код также должен быть изменен на лицензию, совместимую с GPL, в то время как LGPL включает только часть с авторским левом для кода в распространяемой библиотеке, а не код приложения. Для таких библиотек, как PHPMailer, LGPL вполне подходит и не имеет отношения к вашему собственному коду, который совсем не затрагивается этой лицензией. - person iquito; 24.09.2016
comment
Конечно, LGPL менее ограничительна, чем исходная GPL (на это также намекает ее название: Меньшая GPL). В то время как лицензия GPL требует, чтобы вы делились кодом всей «производной работы», LGPL требует, чтобы вы делились только исходным кодом работы, «основанной» на компонентах лицензии LGPL, а не работы, которая «использует» ее. это означает, что вы не обязаны делиться кодом, предназначенным для работы с библиотекой, путем компиляции или связывания с ней - статической или динамической. - person M A Hossain Tonu; 01.03.2018
comment
Следовательно, учитывая производные работы от PHPMailer, «заразное» слово используется для описания точки совместного использования вашего компонента кода, если он «основан» на компонентах под лицензией LGPL. В общем, вы не получаете работу от PHPMailer, так что это абсолютно нормально и снимает головную боль с лицензией. - person M A Hossain Tonu; 01.03.2018

Существует также Zend_Mail. Если бы сегодня мне пришлось выбирать один для нового проекта, я бы серьезно об этом подумал.

person troelskn    schedule 19.11.2008
comment
Не похоже, что вы можете использовать его самостоятельно, я думаю, вам нужно использовать всю библиотеку zend, которая в минимальной версии сжата более чем на 6 МБ. - person Marco Demaio; 19.12.2011
comment
Zend_Mail отлично работает, но да, необходимость использования всего фреймворка является своего рода недостатком для небольших проектов, если вы не используете Zend Framework. - person MaxiWheat; 02.05.2014
comment
ZF Mail не требует от вас всего 6-мегабайтного фреймворка. Одной из лучших особенностей Zend Framework является то, что вы можете использовать только те классы, которые вам нужны. Однако вам все равно потребуется около 10-20 файлов для включения из Zend. - person divix; 25.01.2016

Посмотрев на оба, я думаю, что SwiftMailer имеет гораздо более приятный интерфейс, чем PHPMailer, и, как кто-то указал, Zend_Mail также является еще одним хорошим вариантом, особенно если вы используете другие компоненты Zend. Это значительно упрощает жизнь, если вы используете все из одного и того же фреймворка.

person Sheldmandu    schedule 08.01.2011
comment
Эта тема также может быть полезна: forums.phplist.com/viewtopic.php?t=8270 - person Steve Chambers; 25.08.2014

Я использовал PHPMailer во многих проектах, и у меня никогда не было проблем. Это полная функция, и у нее есть хорошие документы.

Я никогда не слышал о Swiftmailer, поэтому заглянул на его сайт. Это тоже кажется хорошим решением.

Если ваши потребности просты, как вы говорите, то просто выберите один наугад.

person daremon    schedule 20.11.2008

Тенденции Google: swiftmailer растет, но phpmailer по-прежнему очень силен .

Я бы выбрал Swiftmailer, потому что документация понятна и проста. Сайт/документы Phpmailer немного запутаны (по крайней мере, они так выглядят).


РЕДАКТИРОВАТЬ: после того, как я попробовал их оба (и столкнулся с проблемой хостинга, для которой SwiftMailer не выдал никаких подсказок), я полностью передумал, я бы определенно выбрал PHPMailer по крайней мере для одного хорошего причина: гораздо проще отлаживать, если у вас есть какие-либо проблемы.

И SwiftMailer, и PHPMailer предоставляют параметры отладки (SwiftMailer с плагином и PHPMailer, включив SMTPDebug = 2), но SwiftMailer состоит из сотен небольших файлов, которые усложняют отладку SwiftMailer по сравнению с тремя файлами, из которых состоит PHPMailer.

Что касается документов, то документация PHPmailer выглядит не так красиво, но в ней есть все, что вам нужно: простое руководство, примеры

person Marco Demaio    schedule 25.02.2013
comment
Большинство приведенных выше ссылок PHPMailer устарели — теперь вы должны начать здесь. - person Synchro; 25.02.2015
comment
@Synchro: я обновил ссылки, в следующий раз не стесняйтесь редактировать мой ответ и исправлять его самостоятельно. - person Marco Demaio; 25.02.2015
comment
› SwiftMailer состоит из сотен небольших файлов, которые усложняют отладку SwiftMailer по сравнению с тремя файлами, из которых состоит PHPMailer. Ужасное рассуждение. количество файлов не должно быть решающим фактором при использовании библиотеки или отладке, поскольку отладка не требует возни с файлами, она включает в себя пошаговое выполнение потока. - person MrMesees; 13.01.2017
comment
@MrMesees: пошаговое выполнение процесса путем просмотра сотен микрофайлов занимает больше времени, чем просмотр нескольких файлов большего размера. :) - person Marco Demaio; 10.02.2017

Я только что перешел на Swift сегодня из-за проблем с PHPMailer и PHP 5.3 — даже последней версии — и это позор. Swift имеет очень хорошо документированную интеграцию, которая упрощает работу.

person user398341    schedule 15.06.2011