【发布时间】:2011-11-07 04:38:23
【问题描述】:
我的网页有这个问题,我需要通过电子邮件向某人发送文件,我遇到的问题是邮件到达时没有附件和很多奇怪的字符,我给你我的代码:
$boundary='Datos Adjuntos';
$boundary.=" ".md5(time());
//Cabeceras del email
$headers ="From: Example <name@example.com>\r\n";
$headers .= "Reply-To: <name@example.com>\r\n";
// $headers .="MIME-Version: 1.0\r\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n\n";
$body="--". $boundary ."\n";
$body .= "Content-Type: text/html; charset=ISO-8859-1\r\n\n";
$archivo=file_get_contents($dir."/".$handle->file_dst_name);
$archivo=chunk_split(base64_encode($archivo));
//Escritura del archivo adjunto
$body .= $body .$ContenidoString. "--" .$boundary. "\n";
//Content-Type: application/msword; name=\"nombre_archivo\"\r\n
$body .= "Content-Transfer-Encoding: base64\r\n";
$body .= "Content-Disposition: attachment; filename=\"".$handle->file_dst_name."\"\r\n\n$archivo";
$body = $body . "--" . $boundary ."--";
Correo::Enviar("OPERACION","name@example.com", $body,$headers);
$ContentString是邮件的html,我使用upload类将文件上传到服务器然后发送,我给你留一段我收到的邮件:
这毕竟是电子邮件的 e## e 名称和 ## e 内容等所有其他内容。
--Datos Adjuntos 1c436ca78c5925e7096267f0eae3a7d3 Content-Transfer-Encoding: base64 Content-Disposition: attachment;文件名="9cbdf187_3251_42e5_aeaa_84df343a227d_4.pdf" JVBERi0xLjQKJdP0zOEKMSAwIG9iago8PAovQ3JlYXRpb25EYXRlKEQ6MjAxMTA4MTYxNTEyNDIt MDUnMDAnKQovQ3JlYXRvcihQREZzaGFycCAxLj3LZzaGFycCAxLjM
【问题讨论】:
-
当有大量经过试验和测试的代码可以成功完成您想要实现的目标时,您为什么要重新发明轮子?只需使用Zend_Mail 或类似组件,专注于解决您的独特问题,而不是那些已经解决了一遍又一遍的问题......
-
您的邮件的
text/html部分中似乎没有任何HTML... -
不,我没有放 HTML
标签: php email attachment