2014-11-04 2 views
0

У меня есть XML, и я хочу отправить его в виде вложения в электронное письмо. Как это сделать с помощью PHP? Мой код не работаетКак отправить XML-файл в электронную почту с помощью PHP?

У меня есть этот

<?php 
$mail_to = ""; 
$from_mail = ""; 
$from_name = ""; 
$reply_to = ""; 
$subject = ""; 
$message = ""; 

/* Приложение файла местоположение */ // Приложение

$file_name = "only1.php"; 
$path = "http://66.147.244.92/~homecre1/public_html/Test/only1.php; 

// Читаем содержимое файла

$file = $path.$file_name; 
$file_size = filesize($file); 
$handle = fopen($file, "r"); 
$content = fread($handle, $file_size); 
fclose($handle); 
$content = chunk_split(base64_encode($content)); 

/* Установить заголовок электронной почты */ // Создать границу

$boundary = md5(uniqid(time())); 

// Email заголовок

$header = "From: ".$from_name." \r\n"; 
$header .= "Reply-To: ".$reply_to."\r\n"; 
$header .= "MIME-Version: 1.0\r\n"; 

// Multipart обертывания электронной почты содержимого и вложений

$header .= "Content-Type: multipart/mixed;\r\n"; 
$header .= " boundary=\"".$boundary."\""; 

$message .= "This is a multi-part message in MIME format.\r\n\r\n"; 
$message .= "--".$boundary."\r\n"; 

// содержимое Email // Content-тип может быть текст/простой или текст/html

$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n"; 
$message .= "Content-Transfer-Encoding: 7bit\r\n"; 
$message .= "\r\n"; 
$message .= "$message_body\r\n"; 
$message .= "--".$boundary."\r\n"; 

// Приложение // Изменить тип контента для различных расширений файлов

$message .= "Content-Type: application/php;\r\n"; 
$message .= " name=\"".$file_name."\"\r\n"; 
$message .= "Content-Transfer-Encoding: base64\r\n"; 
$message .= "Content-Disposition: attachment;\r\n"; 
$message .= " filename=\"".$file_name."\"\r\n"; 
$message .= "\r\n".$content."\r\n"; 
$message .= "--".$boundary."--\r\n"; 

// отправлять электронную почту

if (mail($mail_to, $subject, $message, $header)) { 
    echo "Sent"; 
} else { 
    echo "Error"; 
} 
?> 
+0

возможно дубликат [? Отправить вложения с PHP почты()] (http://stackoverflow.com/questions/12301358/send-attachments-with-php- mail) –

ответ

0

Если вы используете библиотеку PHPMailer затем использовать следующую функцию, чтобы добавить файл.

$mail->AddAttachment("filename"); 

библиотека PHPMailer Ссылка: https://github.com/PHPMailer/PHPMailer

+0

Есть ли какой-либо вариант без PHPMailer? – user4212650

+0

Пожалуйста, перейдите через функцию почтовой программы, которая объясняет, как ее отправить. http://php.net/manual/en/function.mail.php , чтобы написать свою собственную функцию для этого. Один парень написал genric funciton с именем public static function prepareAttachment ($ path) { – Vijay

Смежные вопросы