我在我的網頁有這個問題,我需要通過電子郵件發送文件給某人,我的問題是郵件到達時沒有附件和很多奇怪的字符,我離開你我的代碼:在PHP中發送帶附件的電子郵件,只顯示字符沒有附加文件
$boundary='Datos Adjuntos';
$boundary.=" ".md5(time());
//Cabeceras del email
$headers ="From: Example <[email protected]>\r\n";
$headers .= "Reply-To: <[email protected]>\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","[email protected]", $body,$headers);
的$ContentString
是電子郵件的HTML,我用的是上傳類將文件上傳到服務器,然後發送它,我離開你一塊我收到的電子郵件地址是: 這是畢竟其他事情,比如電子郵件的名稱和## e內容。
--Datos Adjuntos 1c436ca78c5925e7096267f0eae3a7d3 Content-Transfer-Encoding:base64 Content-Disposition:attachment;文件名=「9cbdf187_3251_42e5_aeaa_84df343a227d_4.pdf」 JVBERi0xLjQKJdP0zOEKMSAwIG9iago8PAovQ3JlYXRpb25EYXRlKEQ6MjAxMTA4MTYxNTEyNDIt MDUnMDAnKQovQ3JlYXRvcihQREZzaGFycCAxLjMuMTY4NC1nIFwod3d3LnBk
爲什麼你想要重新發明輪子,當有很多經過試驗和測試的代碼可以成功地完成你想要實現的目標?只需使用[Zend_Mail](http://framework.zend.com/manual/en/zend.mail.html)或類似的組件,並專注於解決您的獨特問題,而不是那些一遍又一遍解決的問題。 .. – wimvds
你在信息的'text/html'部分似乎沒有任何HTML ... – DaveRandom
不,我沒有把HTML – apz2000