我正在尝试使用PHP发送带有附件的电子邮件。 我按照http://webcheatsheet.com/PHP/send_email_text_html_attachment.php#attachment上的优秀教程进行了以下更改:
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: application/txt; name="<?php echo $_POST[log_file]?>"
Content-Transfer-Encoding: base64
Content-Disposition: attachment
原始脚本或我修改的脚本似乎都没有将任何文件附加到我的电子邮件中。 任何人都知道我做错了什么。
注意:我附加到表单的文件都是文本文件(各种文件扩展名,例如.log,.txt等)。
好的,我现在已经证明我认为此脚本的MIME编码部分无效。 我在上传目录中放置了一个文本文件,并将脚本更改为:
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: text/plain; name="<?php echo $_SERVER['DOCUMENT_ROOT']. '/upload/test.txt' ?>"
Content-Transfer-Encoding: base64
Content-Disposition: attachment
在收到电子邮件来源时,我会看到Content-Type下的完整路径和文档名称:text / plain; name =,但是没有附件,编码或其他。
我尝试了以下内容:
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: text/plain; name="<?php echo $_FILES['file']['name']; ?>"
Content-Transfer-Encoding: base64
Content-Disposition: attachment
这会在电子邮件来源中显示文件名,但没有附件,有趣的是:
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: text/plain; name="<?php echo $_FILES['file']['temp_name']; ?>"
Content-Transfer-Encoding: base64
Content-Disposition: attachment
返回一个空文件名但仍然没有附件,我只能假设临时文件在执行时被删除了吗?
答案 0 :(得分:0)
好的,最后通过将临时文件移动到我服务器上的另一个位置然后对该文件进行编码来实现此功能。
不知道为什么我不能保存它来编码临时文件,但至少我现在已经开始工作了。
感谢所有花时间回复此问题的人,你们给了我很多帮助。