PDA

Просмотр полной версии : Отправка писем с вложениями. Рамблер не принимает


Nicca
10.03.2010, 22:01
Использую для отправки писем такую функцию:


function xmail( $from, $to, $subj, $text, $filename) {
$f = fopen($filename,"rb");
$un = strtoupper(uniqid(time()));
$head = "From: $from\n";
$head .= "To: $to\n";
$head .= "Subject: $subj\n";
$head .= "X-Mailer: PHPMail Tool\n";
$head .= "Reply-To: $from\n";
$head .= "Mime-Version: 1.0\n";
$head .= "Content-Type:multipart/mixed;";
$head .= "boundary=\"----------".$un."\"\n\n";
$zag = "------------".$un."\nContent-Type:text/html;\n";
$zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
$zag .= "------------".$un."\n";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name=\"".basename($filename)."\"\n";
$zag .= "Content-Transfer-Encoding:base64\n";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename=\"".basename($filename)."\"\n\n";
$zag .= chunk_split(base64_encode(fread($f,filesize($filen ame))))."\n";
return @mail("$to", "$subj", $zag, $head);
}


Некоторые сервера не принимают письма, в частности рамблер, мейл.ру. Приходит письмо с текстом:
xxxxxxxxx@mail.ru
SMTP error from remote mail server after end of data:
host mxs.mail.ru [94.100.176.20]: 550 spam message rejected. Please visit http://mail.ru/notspam/ or report details to abuse@corp.mail.ru. Error code:
AC9A0BD5FAF7E9B1081F3335427B86F602DAA3664842B44AD6 F7D46928CEB399065860860DA816FF

Писал письмо в мейл.ру, ответ:

Ваши письма не соответствуют стандартам RFC.
Придерживайтесь, пожалуйста, стандартов на отправку почты, проблем при
их доставке возникать не будет.
По rfc2047 тема письма должна кодироваться как Base64 или
Quoted-Printable, в ней не должно быть русских символов.

Подскажите как сделать чтобы все правильно отправлялось?