1

我有一个表格,允许用户提交支持请求。该表格还允许用户发送附件(jpeg/pdf 等)

提交表单后,它会向用户发送一封确认电子邮件,概述他们的请求,但还会向 basecamp(项目管理软件)发送另一封电子邮件,并在其中记录此请求。

大本营的电子邮件应分为两部分;内容发送到一封电子邮件,附件发送到另一封电子邮件。

类似的东西(只是一个基本的例子):

$email_A = "project1@live.com";
$subject_A = "Todo:";
$message_A = "* Milk
              * Bread";

$email_B = "project-image@live.com";
$subject_B = "Files";
$message_B = "";

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

我如何将用户在表单中上传的文件附加到上述消息 ($message_B) 中,以便它通过电子邮件将其发送到 basecamp?它在 basecamp 中说,要通过电子邮件附加文件,您需要做的就是将主题作为“文件”并将附件插入电子邮件正文?

4

1 回答 1

1

如果你那么想要...

$boundary = md5(uniqid(rand()));
$headers = "From: webmaster@site.com\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);  

我想你会明白我的意思的。

于 2013-10-25T13:51:45.080 回答