Я пытаюсь отправить электронное письмо с вложением в формате PDF, используя Pear. Письмо отправлено, но оно отправлено в неправильном формате. Похоже, письмо отображается в текстовом формате. Вот что я получаю:
Тип контента: составной / альтернативный;
граница = "= _ 5a78298c81e9b7e60dee1049b9239270"
- = _ 5a78298c81e9b7e60dee1049b9239270
Content-Transfer-Encoding: цитируемая для печати
Тип содержимого: текст / обычный текст; кодировка = ISO-8859-1
Привет, мир
- = _ 5a78298c81e9b7e60dee1049b9239270
Content-Transfer-Encoding: цитируемая для печати
Content-Type: text / html; кодировка = ISO-8859-1
Hello world
- = _ 5a78298c81e9b7e60dee1049b9239270 -
Content-Transfer-Encoding: base64
Content-Type: application / octet-stream;
имя = phpk0AQHD
Content-Disposition: приложение;
имя_файла = phpk0AQHD
За этим следует огромное количество случайных символов, которые я могу только предположить, это прикрепленный файл в текстовом формате. Я попытался отправить его в Gmail, Hotmail и на адрес Microsoft Exchange, использующий Outlook, и получаю те же результаты.
Это мой код:
<?php
include('../includes/Mail.php');
include('../includes/Mail/mime.php');
$newsletterName = $_POST['newsletterName'];
$newsletterDate = $_POST['newsletterDate'];
$_SESSION['newsletterName'] = $newsletterName;
$_SESSION['newsletterDate'] = $newsletterDate;
$uploadDir = "newsletters/";
$tempLocation = $_FILES['newsletter']['tmp_name'];
$newsletterPath = $uploadDir . str_replace(" ", "-", $_FILES['newsletter']['name']);
$newsletterFile = $_FILES['newsletter'];
if ($_FILES["newsletter"]["type"] == "application/pdf")
{
include '../includes/db-connection-wp.php';
$query = "INSERT INTO newsletters (newsletter_title, newsletter_path, newsletter_date) VALUES ('" . mysql_real_escape_string($newsletterName) . "', '" . mysql_real_escape_string($newsletterPath) . "', '$newsletterDate')";
if (!mysql_query($query,$connection))
{
die('Error: ' . mysql_error() . ' Please go back and try again.');
}
//copy pdf to the right location
if (copy($tempLocation, "../" . $newsletterPath))
{
include '../includes/db-connection.php';
$queryContact = "SELECT users.email_address FROM form_pages LEFT JOIN users ON form_pages.user_id = users.user_id WHERE form_pages.page_name = 'add-newsletter'";
$resultContact = mysql_query($queryContact);
while ($rowContact = mysql_fetch_assoc($resultContact))
{
$from = $rowContact["email_address"];
}
$query = "SELECT * FROM newsletter_recipients";
$result = mysql_query($query);
$subject = 'Newsletter';
$message = new Mail_mime();
$text = file_get_contents("mail_text.txt");
$html = file_get_contents("mail_html.html");
$message->setTXTBody("Hello world");
$message->setHTMLBody("<b>Hello world</b>");
$message->addAttachment($tempLocation);
$body = $message->get();
$extraheaders = array("From"=>"timottewellis@gmail.com", "Subject"=>"My Subject 7");
$headers = $message->headers($extraheaders);
$mail = Mail::factory("mail");
$mail->send("timottewellis@gmail.com", $headers, $body);
$_SESSION['pdf'] = true;
$_SESSION['newsletterName'] = null;
$_SESSION['newsletterDate'] = null;
header("location:success/");
}
else
{
$_SESSION['upload'] = false;
header("location:add-newsletter/");
}
}
else
{
$_SESSION['pdf'] = false;
echo "hello " . $_FILES["newsletter"]["type"];
header("location:add-newsletter/");
}
?>
Любые советы о том, что я делаю неправильно, будут очень признательны.