Focus
Новичок
Проблема при отправке почты
Использую для отправки писем следующую функцию.
Некоторые письма не доходят адресату. Хостер сказал что
письма не соответствуют стандартам RFC. По rfc2047 тема письма должна кодироваться как Base64 или
Quoted-Printable, в ней не должно быть русских символов.
Как переделать мою функцию чтобы все работало нормально?
Использую для отправки писем следующую функцию.
Некоторые письма не доходят адресату. Хостер сказал что
письма не соответствуют стандартам RFC. По rfc2047 тема письма должна кодироваться как Base64 или
Quoted-Printable, в ней не должно быть русских символов.
Как переделать мою функцию чтобы все работало нормально?
PHP:
function xmail( $from, $to, $subj, $text, $filename) {
if(is_file($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($filename))))."\n";
return @mail("$to", "$subj", $zag, $head);
}
else
{
$subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subj, "w","k")).'?=';
$headers = "Content-type: text/html; charset=windows-1251 \r\n";
$headers .= "From: FROM <[email protected]>";
mail("$to", $subj, $text, $headers);
}
}