2013-10-25 5 views
1

У меня есть форма, которая позволяет пользователям отправлять запрос на поддержку. Форма также позволяет пользователям отправлять вложение (jpeg/pdf и т. Д.)Как добавить вложение к почтовому сообщению с помощью PHP?

После того, как форма была отправлена, она отправляет письмо с подтверждением обратно пользователю, излагая их запрос, но также отправляет другое в basecamp (проект программное обеспечение для управления), где он регистрирует этот запрос.

Электронная почта для basecamp должно быть в 2 частях; содержимое отправляется на одно электронное письмо, вложения в другое.

Нечто подобное (только в базовом примере):

$email_A = "[email protected]"; 
$subject_A = "Todo:"; 
$message_A = "* Milk 
       * Bread"; 

$email_B = "[email protected]"; 
$subject_B = "Files"; 
$message_B = ""; 

mail($email_A, $subject_A, $message_A); 
mail($email_B, $subject_B, $message_B); 

Как бы я прикрепить файл, который пользователь загрузил в форме вышеприведенного сообщения ($ message_B) так, что он отправляет его по электронной почте в basecamp? В basecamp говорится, что для прикрепления файлов по электронной почте все, что вам нужно сделать, это поставить тему как «Файлы» и вставить вложение в теле письма?

+2

Чтобы отправить вложение с почтой(), сложнее, чем вы думаете. Попробуйте использовать класс электронной почты, такой как PHPMailer, который упрощает вызов метода. –

ответ

1

Если вы так хотите ...

$boundary = md5(uniqid(rand())); 
$headers = "From: [email protected]\r\n" 
    ."Mime: 1.0\r\n" 
    ."Content-Type: multipart/mixed;boundary=\"".$boundary."\"\r\n"; 

$body = "--".$boundary."\r\n" 
    ."Content-Type: text/html;charset=\"UTF8\"\r\n" 
    ."Content-Transfer-Encoding: base64\r\n\r\n" 
    .chunk_split(base64_encode($text))."\r\n\r\n" 
    // second part of mail - attachment 
    ."--".$boundary."\r\n" 
    ."Content-Type: image/jpeg\r\n" 
    ."Content-Transfer-Encoding: base64\r\n" 
    ."Content-Description: imageXXX.jpg\r\n" 
    ."Content-Disposition: attachment; filename=\"imageXXX.jpg\"\r\n" 
    .chunk_split(base64_encode(file_get_contents('http://images6.fanpop.com/image/photos/34600000/Beautiful-Red-Roses-roses-34610966-1920-1080.jpg')))."\r\n\r\n" 
    ."--".$boundary."--\r\n"; 

mail($to, $subj, $body, $headers); 

Я думаю, что вы получите мою точку зрения.

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