$smtp = Net::SMTP->new($smtp_ip, Timeout => 30, Debug => 1 ) or die "Couldn't connect to server: $!" ;
$smtp->mail($from_address);
$smtp->data();
$smtp->datasend("From: $from_address");
$smtp->datasend("To: $to_address");
$smtp->datasend("Subject: ".$subj."");
$smtp->datasend("Mime-Version: 1.0");
$smtp->datasend("X-Mailer: MyMail v1b");
$smtp->datasend("");
$smtp->datasend("Content-Transfer-Encoding: 8bit");
$smtp->datasend("");
if (length($attachname) > 3)
{#если имеется этач
$smtp->datasend("Content-Type: multipart/mixed; boundary=\"MyBoundary\"");
open (ATTACH, "< $attachdir/$attachname");
$attach = ATTACH;
}
else
{
$smtp->datasend("Content-Type: text/plain; charset=Windows-1251");
}
if ($attach)
{#если имеется этач
$smtp->datasend(" This is a multi-part message in MIME format.");
$smtp->datasend("");
$smtp->datasend("--MyBoundary"); #разделитель - определен в начале
$smtp->datasend(" Content-Type: text\/plain");
}
$smtp->datasend(" $mess"); #тут тело письма
if ($attach)
{ # а тут этачмент
$smtp->datasend("");
$smtp->datasend("--MyBoundary"); #разделитель - определен в начале
$smtp->datasend("");
$smtp->datasend("Content-Type: application/octet-stream; name=\"$attachname\"");
$smtp->datasend("");
$smtp->datasend("Content-Disposition: attachment; filename=\"$attachname\"");
$smtp->datasend("");
$smtp->datasend("Content-Transfer-Encoding: base64");
$smtp->datasend("");
$smtp->datasend("--MyBoundary");
$smtp->datasend("");
while (read($attach, $buf, 60*57))
{
$smtp->datasend(encode_base64($buf));
}
$smtp->datasend("--MyBoundary--");
}
$smtp->dataend();
$smtp->quit;