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


Автор: летчик 13.11.2002, 06:05
Как можно отправить письмо с аттачем ?
и еще:
Как сделать так чтобы в файле html который формируется перлом был линк на почту типа mailto:info@bombart.net?
спасибо

Автор: nickzone 13.11.2002, 20:06
Используй MIME:Entity;

Автор: летчик 14.11.2002, 07:10
а поподробнее можно ?
если бы я знал как использовать этот MIME:Entity ,то не спрашивал бы

Автор: nick 15.11.2002, 01:30
Create a multipart message (i.e., one with attachments):

          ### Create a new multipart message:
          $msg = MIME::Lite->new(
                       From    =>'me@myhost.com',
                       To      =>'you@yourhost.com',
                       Cc      =>'some@other.com, some@more.com',
                       Subject =>'A message with 2 parts...',
                       Type    =>'multipart/mixed'
                       );

          ### Add parts (each "attach" has same arguments as "new"):
          $msg->attach(Type     =>'TEXT',
                       Data     =>"Here's the GIF file you wanted"
                       );
          $msg->attach(Type     =>'image/gif',
                       Path     =>'aaa000123.gif',
                       Filename =>'logo.gif',
                       Disposition => 'attachment'
                       );

Автор: HalkaR 11.12.2002, 06:30
Так же можно использовать Mail::Sendmail
Код
use MIME::QuotedPrint;
use MIME::Base64;
use Mail::Sendmail;

$message = qq[Test];
$boundary = "====" . time() . "====";

 %mail = ( To      => 'somwhere@where.org',
           From    => '"Bill Gates" <Bill.Gates@microsoft.org>',
           Subject => 'Test',
   'Content-Type' => "multipart/mixed; boundary=\"$boundary\" charset=koi8-r",
   'Content-Transfer-Encoding' => '8bit',
   'X-Mailer' => 'Microsoft Outlook Express 6.00.2600.0000',
   smtp    => '192.168.1.80:25',
   'X-MSMail-Priority' => 'High');


$file = ''; #Здесь пишешь название файла, которы отправляешь.

open (F, $file) or die "Cannot read $file: $!";
binmode F; undef $/;
$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--
END_OF_BODY


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



 print "OK. Log says:\n", $Mail::Sendmail::log;

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