2015-05-08 3 views
3

Мой кодвложений MIME файл не открывается

<?php 

require_once "Mail.php"; // PEAR Mail package 
require_once ('Mail/mime.php'); // PEAR Mail_Mime packge 

$from = "<[email protected]>"; 
$to = "<[email protected]>"; 
$subject = "Hi!"; 


$host = "ssl://smtp.googlemail.com"; 
$port = "465"; 
$username = "[email protected]"; 
$password = "example"; 

$smtp = Mail::factory('smtp', 
    array ('host' => $host, 
    'port' => $port, 
    'auth' => true, 
    'username' => $username, 
    'password' => $password)); 


$headers = array ('From' => $from, 
    'To' => $to, 
    'Subject' => $subject); 


// attachment 
$file = '/var/www/html/formsubmit/TodoList/upload/abc.pdf'; 
$crlf = "n"; 
$text="Helllooooo"; 
$html = "<html> <head> <title>Mail test</title> </head> <body>something</body></html>"; 

$mime = new Mail_mime($crlf); 
$mime->setTXTBody($text); 
$mime->setHTMLBody($html); 
if($mime->addAttachment($file)) 
{ 
    echo "Success"; 
} 
else 

{ 
    echo "Failed"; 
} 


$body = $mime->get(); 
$headers = $mime->headers($headers); 


$mail = $smtp->send($to, $headers, $body); 


if (PEAR::isError($mail)) { 
    echo("<p>" . $mail->getMessage() . "</p>"); 
} else { 
echo("<p>Message successfully sent!</p>"); 
} 
?> 

Приставка не может открыть даже после его загрузки.

Почта приходит в папку «Входящие» и вложение также есть. Но вложение похоже на txt file.but. Фактически я прикрепляю файл pdf. Я использовал почту почты SMTP и MIME.

Pls help me.

+0

Код выглядит правильно. Не могли бы вы добавить источник письма (источник MIME), полученный получателем на ваш вопрос? – PeterK

+0

Я тебя не понял. Pls делает это ясно –

+0

Код кажется правильным, поэтому он не говорит нам, что пойдет не так с электронной почтой. Однако исходный код электронной почты (a.k.a. источник MIME или файл .EML) может предоставить полезные подсказки. Предполагая, что почтовый ящик получателя находится в Gmail, вы можете использовать меню «Показать оригинал», чтобы получить источник электронной почты. Другие почтовые клиенты обычно предоставляют аналогичную функциональность. – PeterK

ответ

2

Соответствующий код в почте:

Content-Transfer-Encoding: base64 
Content-Type: application/octet-stream; 
name=abc.pdf 
Content-Disposition: attachment; 
filename=abc.pdf; 
size=4997278 

Тип контента является родовым один; попробуйте использовать application/pdf как второй параметр для addAttachment().


Кроме того, НИКОГДА не отправляйте свой реальный почтовый адрес и пароль в любом месте.

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

  • Нет связанных вопросов^_^