URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4013
[ Назад ]

Исходное сообщение
"Ламерский вопрос по отправке почты"

Отправлено alexeylomov , 28-Фев-05 16:19 
Есть скрипт на перле, который должен отправить письмо с аттачем и текстом.
Список файлов в переменной @files.
Так вот, с текстом проблем нет, а вот с файлами сложнее...
Проблема: если я сначала отправляю текст, то потом весь аттач получается в текстовом виде, а если сначала аттач, то текст тоже получается в аттаче.
Видимо я что-то забываю дописать, не знаю...
Короче, если только текст, то последовательность такая:
print SENDMAIL "Content-Type: text/plain; charset=\"koi8-r\"\n";
print SENDMAIL "Content-Transfer-Encoding: 8bit\n";
print SENDMAIL "To: $email\n";
print SENDMAIL "From: SELFMAILER\n";
print SENDMAIL "Subject: $subject\n\n";
print SENDMAIL "Current time:$time\nMessage:\n";
foreach $str( @str ) { print SENDMAIL $str; }
Если теперь написать print SENDMAIL "Content-Type: application/x-compressed\n"; и др...
то эта строка и все следующие отправятся как текст письма
А если вначале, то текст письма оказывается а аттаче к письму, а не в письме.
Подскажите, что нужно добавить к этой части программы, чтобы правильно присоединить файлы к письму...

Содержание

Сообщения в этом обсуждении
"Ламерский вопрос по отправке почты"
Отправлено alexeylomov , 28-Фев-05 18:39 
Не, ну скажите, неужели этого мало, чтобы отправить письмо с вложенным файлом???
print SENDMAIL "Content-Type: application/unknown\n";
print SENDMAIL "Content-Disposition: attachment; filename=$file\n";
print SENDMAIL "Content-Transfer-Encoding: base64\n";
print SENDMAIL "Content-Type: text/plain; charset=\"koi8-r\"\n";
print SENDMAIL "Content-Transfer-Encoding: 8bit\n";
print SENDMAIL "To: $email\n";
print SENDMAIL "From: SELFMAILER\n";
print SENDMAIL "Subject: $subject\n\n";
print SENDMAIL "Message:$msg\n";

" Или просто посмотрите, и скажите что не так?"
Отправлено alexeylomov , 01-Мрт-05 19:02 
open( SENDMAIL, "|/usr/sbin/sendmail -t" );
print SENDMAIL "To: $email\n";
print SENDMAIL "From: SELFMAILER\n";
print SENDMAIL "Subject: $subject\n\n";
print SENDMAIL "MIME-Version: 1.0\n";
print SENDMAIL "Content-Type: multipart/mixed; boundary=\"NEWMAIL\"\n";
print SENDMAIL "--NEWMAIL\n";
print SENDMAIL "Content-Type: text/plain; charset=\"koi8-r\"\n";
print SENDMAIL "Content-Transfer-Encoding: 8bit\n";
print SENDMAIL "Current time:$time\nMessage:\n";
foreach $str( @str ) { print SENDMAIL $str; }
print SENDMAIL "--NEWMAIL\n";
print SENDMAIL "Content-Type: application/unknown; name=$file\n";
print SENDMAIL "Content-Transfer-Encoding: base64\n";
print SENDMAIL "--NEWMAIL--";
close( SENDMAIL );

" Или просто посмотрите, и скажите что не так?"
Отправлено gyn61 , 01-Мрт-05 20:40 
Заголовок обязательно отделяется от тела сообщения пустой строкой.
После тела (перед следующим разделителем) тоже нужна пустая строка.
После разделителя перед следующим заголовком пустой строки не нужно.

" Или просто посмотрите, и скажите что не так?"
Отправлено alexeylomov , 02-Мрт-05 16:53 
>Заголовок обязательно отделяется от тела сообщения пустой строкой.
>После тела (перед следующим разделителем) тоже нужна пустая строка.
>После разделителя перед следующим заголовком пустой строки не нужно.

Спасибо, теперь все ок.