#php #email #iis
#php #Адрес электронной почты #iis
Вопрос:
Этот скрипт работает на моем linux-сервере, но не на моем сервере IIS. Почта отправляется, но содержимое сообщения пустое, и вложение оказывается .bin
файлом.
// Function to attach a file to an email
function mail_attachment($to, $subject, $message, $from, $file, $filename) {
$content = chunk_split(base64_encode(file_get_contents($file)));
$uid = md5(uniqid(time()));
$header = "From: ".$from."rn"
."MIME-Version: 1.0rn"
."Content-Type: multipart/mixed; boundary="".$uid.""rnrn"
."This is a multi-part message in MIME format.rn"
."--".$uid."rn"
."Content-type:text/html; charset=iso-8859-1rn"
."Content-Transfer-Encoding: 7bitrnrn"
.str_replace("n.", "n..", $message)."rnrn"
."--".$uid."rn"
."Content-Type: application/octet-stream; name="".$filename.""rn"
."Content-Transfer-Encoding: base64rn"
."Content-Disposition: attachment; filename="".$filename.""rnrn"
.$content."rnrn"
."--".$uid."--";
return mail($to, $subject, "", $header);
}
И вот как он вызывается:
mail_attachment($mailto, $subject, $message,
$from, $_FILES['attachment']['tmp_name'],
$_FILES['attachment']['name']);
Комментарии:
1. Использует PHPMailer или Swiftmailer для генерации MIME-сообщений. Они намного проще и менее хлопотны, чем создание собственных заголовков mime.
2. @Marc: К сожалению, это не вариант для меня.
3. Где происходит
$file_size
воспроизведение? Возможно, он объединяет все сообщения в один файл .bin, потому что он понятия не имеет (или не пытается) определить размер вложения.4. @gigwatt: удалено, оно осталось от предыдущего теста.