Какой пакет из CPAN я должен использовать для отправки почты? - PullRequest
7 голосов
/ 27 мая 2010

Какой пакет из CPAN я должен использовать для отправки почты ?

Иногда подход к тимтоутди очень утомителен. Для меня особенно когда дело доходит до выбора упаковки.

Итак, все, что я хочу - это отправлять электронную почту, возможно, электронную почту в формате HTML Между Mail-Sendmail, Mail-Sender, NET-SMTP (кстати - недоступно в PPM), Mail-SendEasy и 80 или около того другими пакетами, в имени которых есть «Mail» - какой из них выбрать?

А пока в этой теме, каков твой общий подход к выбору «канонического» пакета для пробежки. То есть пакет, который "все используют". Есть ли где-нибудь афиша рейтинга или популярности?

Ответы [ 6 ]

15 голосов
/ 27 мая 2010

каков ваш общий подход к выбору «канонического» пакета для пробежки. То есть пакет, который "все используют". Есть ли где-нибудь афиша рейтинга или популярности?

Когда я хочу выбрать, какой из нескольких модулей CPAN использовать, я смотрю на следующие вещи:

Документация:

Лакмусовый тест для модулей CPAN - первая страница документации. Если есть грязный синопсис или синопсис без простого рабочего примера, я думаю, что модуль, вероятно, не очень хороший. Неопрятная, грязная или неформатная документация также помечена красным цветом.

Состояние ремонта:

Кроме того, есть ли список рассылки для модуля? Наличие списка рассылки - довольно хороший признак хорошего, поддерживаемого, стабильного, документированного и популярного модуля.

Автор:

  • Как зовут автора модуля?
  • Сколько еще модулей выпустил автор?
  • Какие модули выпущены автором?

Автор имеет большое значение. Есть некоторые авторы, которые создают вещи, которые имеют превосходное качество, такие как Жизл Аас, Грэм Барр, Энди Уордли или Ян Дюбуа, и некоторые люди, которые делают много вещей, которые можно охарактеризовать как «экспериментальные», такие как Дамиан Конвей или Тацухико Miyagawa. Будьте осторожны с людьми, которые выпустили много модулей Acme :: (шутка). Также остерегайтесь вещей, написанных людьми, которые поддерживают только один или два модуля. Люди, у которых всего менее пяти модулей, обычно их не обслуживают.

Другие вещи:

cpanratings.perl.org часто полезен, но принимайте его с небольшим количеством соли.

Кроме того, во многом это просто метод проб и ошибок. Скачайте и посмотрите, проходит ли он свои собственные тесты, посмотрите, есть ли у него какие-либо тесты, напишите тестовый скрипт и т. Д.

Вещи, которые часто не дают значимого рейтинга:

  • Лучшие результаты по Google , как правило, относятся к древним статьям Perlmonks, perl.com или Dr. Dobbs 'Journal, и они часто указывают вам на устаревшие вещи.
  • search.cpan.org * Функция поиска помещает модули, которые не обновлялись в течение десяти лет на первой странице, и самые последние и лучшие на десятой странице или что-то в этом роде.

Остерегайтесь "обмана":

Еще одна вещь, которую я хочу сказать: будьте осторожны с советами относительно блогов, стекового потока, новостей Usenet и т. Д. - люди, как правило, направляют вас к любому модулю, который является изюминкой месяца, а не стабильным, проверенным решением. «Модным» модулям, как правило, не хватает документации, они нестабильны, имеют кошмарные зависимости, и довольно часто вчерашние модные модули внезапно теряют популярность и покидают их, их заменяет другой аромат месяца, оставляя вас в беде, если вы решите используйте их.

9 голосов
/ 27 мая 2010

Task :: Kensho обычно дает хорошие рекомендации. Для отправки электронной почты предлагается Email :: Sender

3 голосов
/ 27 мая 2010

Я скину в Email :: Stuff. Это хорошая оболочка для Email :: MIME. Вам не нужно заботиться о структуре MIME почты, модуль сделает это за вас.

Email::Stuff->from     ('cpan@ali.as'                      )
            ->to       ('santa@northpole.org'              )
            ->bcc      ('bunbun@sluggy.com'                )
            ->text_body($body                              )
            ->attach   (io('dead_bunbun_faked.gif')->all,
                        filename => 'dead_bunbun_proof.gif')
            ->send;

Что касается выбора модулей,

0 голосов
/ 27 мая 2010

То, что я предпочитаю, это

Mail :: Sendmail

MIME :: Lite

Если вам требуется SSL, включите

Net :: SMTP :: SSL

0 голосов
/ 27 мая 2010

Вы можете использовать Email :: Send
http://search.cpan.org/dist/Email-Send/lib/Email/Send.pm

0 голосов
/ 27 мая 2010

Если вам не нужно больше, чем основные функции, я предлагаю посмотреть на Mime :: Lite .

use MIME::Lite; 
my $msg = new MIME::Lite
From => 'Your friendly neighbourhood spiderman',
To => 'green@goblin.net', 
CC => 'info@nemesis.org',
BCC => 'mj@spidey.info',
'Reply-to' => 'enemies@spidey.info',
Subject => 'Please stop',
Data     => $data; #Email body

die 'Could not send mail' unless ($msg->send);
...