Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > Кто пользовался libwww-perl или MAIL (PERL)?


Автор: Обломов 30.5.2003, 13:15
Как отправить e-mail без использования внешних почтовых программ?
Привидите пожалуйста рабочий пример. (какие модули у вас установлены?)
P.S. А письмо с аттачментом?

Автор: acp 30.5.2003, 13:29

Я такого не делал, хватало обычного sendmail'а.
Посмотри Net::SMTP...

Автор: Обломов 30.5.2003, 14:26
Если интересно, то такое действительно можно сделать с помощю Net::SMTP
http://www.kuban.ru/cgi-bin/forum/forum28.cgi?page=1&ask=7423

Автор: acp 30.5.2003, 14:46

1. Почему этот форум не захотел под Оперой работать?
2. Ну-да, ну-да... Всё это конечно правильно, я даже как-то догадывался что с помошью SMTP протокола можно почту отправлять wink.gif Вот только недаром я упомянул посмотреть Net::SMTP, а именно для него сделать perldoc. Тот пример, который приведён на том форуме взят именно из встроенной документации к этому модулю smile.gif

Автор: HalkaR 30.5.2003, 20:34
Корче говоря я пользовался модулем MAil::Sendmail. Вот рабочий пример
Код
use Mail::Sendmail;


 %mail = ( To      => '[email protected]',
           From    => '[email protected]',
           Subject => 'Subj',
    'Content-Type' => 'text/plain;  charset=win1251',
    'Content-Transfer-Encoding' => '8bit',
    Message => 'Ура! Работает!');


 $mail{Smtp} = 'smtp.mail.ru';
 sendmail(%mail) or die $Mail::Sendmail::error;



 print "OK. Log says:\n", $Mail::Sendmail::log;
Можно и с аттачем.
Код
use MIME::QuotedPrint;
use MIME::Base64;
use Mail::Sendmail;

$message = qq[<html><body><h1>Вот то, что просила</h1><img src="pbar.gif><img src="erorr.gif></body></html>];
$message = encoder($message,"win","koi"),
$boundary = "====" . time() . "====";

 %mail = ( To      => '[email protected]',
           From    => '"Bill Gates" <[email protected]>',
           Subject => 'Subj',
    'Content-Type' => "multipart/mixed; boundary=\"$boundary\" charset=koi8-r",
    'Content-Transfer-Encoding' => '8bit',
    'X-Mailer' => 'Microsoft Outlook Express 6.00.2600.0000',
    smtp    => 'your smtp server',
    'X-MSMail-Priority' => 'High');


$file = 'send.pl'; #Здесь пишешь название файла, которы отправляешь.
$mail{body} = encode_base64(<F>);
close F;

$boundary = '--'.$boundary;
$mail{body} = <<END_OF_BODY;
$boundary
Content-Type: text/html; charset="koi8-r"
Content-Transfer-Encoding: 8bit

$message
$boundary
Content-Type: application/octet-stream; name="$file"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="$file"

$mail{body}
$boundary--\n
END_OF_BODY


 sendmail(%mail) or die $Mail::Sendmail::error;



 print "OK. Log says:\n", $Mail::Sendmail::log;
biggrin.gif biggrin.gif biggrin.gif Шли чо хочешь куда хочешь.

Автор: zibsev 1.7.2003, 20:57
Я вообще ничего не понял. Все-же как с помощью PERL отправить письмо? Кусок кода, дайте.

Автор: HalkaR 1.7.2003, 21:24
http://forum.vingrad.ru/index.php?act=ST&f=5&t=9961
http://forum.vingrad.ru/index.php?act=ST&f=34&t=2075

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)