使用 PHP mail() 函数附加文件并从下载邮件中读取该文件时出现问题
我正在使用 PHP 邮件功能通过 Attachemnet 发送邮件。我成功地将文档附加到邮件中,并在邮件中收到了它。我的问题是当我尝试阅读文档时出现错误。如果我下载了文档并打开文档我看不到附件中的文本。这是编码...
$fileatt = '../'.$_POST['path']; // Path to the file
$fileatt_type = "application/octet-sdiveam"; // File Type
$fileatt_name = $_POST['attachfile'];
$email_from = '[email protected]'; // Who the email is from
$email_subject = $_POST['Subject']; // The Subject of the email
$email_txt = $_POST['Subject']; // Message that the email has in it
$email_to = $_POST['To']; // Who the email is to
$headers = "From: ".$email_from;
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
$email_message .= "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
"Content-divansfer-Encoding: 7bit\n\n" .
$email_message . "\n\n";
$data = chunk_split(base64_encode($data));
$email_message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-divansfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
$ok = @mail($email_to, $email_subject, $email_message, $headers);
这是正确的方法吗?为什么我无法阅读该文档?我不知道。请帮助我。谢谢提前。
已解决:
问题是拼写错误。
Content-divansfer-Encoding: 应为Content-Transfer-Encoding:
I am sending a mail with the attachemnet using the PHP mail function.I suceessfully attached the document to mail and I got it in the mail.My problem is when I try to read the document I got an error.If I downloaded the document and open the document I cant the see the text in the attached document.Here is the coding...
$fileatt = '../'.$_POST['path']; // Path to the file
$fileatt_type = "application/octet-sdiveam"; // File Type
$fileatt_name = $_POST['attachfile'];
$email_from = '[email protected]'; // Who the email is from
$email_subject = $_POST['Subject']; // The Subject of the email
$email_txt = $_POST['Subject']; // Message that the email has in it
$email_to = $_POST['To']; // Who the email is to
$headers = "From: ".$email_from;
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
$email_message .= "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
"Content-divansfer-Encoding: 7bit\n\n" .
$email_message . "\n\n";
$data = chunk_split(base64_encode($data));
$email_message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-divansfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
$ok = @mail($email_to, $email_subject, $email_message, $headers);
Is it the correct way?Why i can't read the document?I dont know.Please help me on this.Thanks in advance.
SOLVED:
Problem is spelling mistake.
Content-divansfer-Encoding: Should be Content-Transfer-Encoding:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我建议使用 pear 的 mail 和 mail_mime 库来使这个过程变得更加容易和干净。
I would have recommended using pear's mail and mail_mime libraries to make this process significantly easier and cleaner.