我正在尝试使用 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
返回一个空文件名并且仍然没有附件,我只能假设在我执行此操作时临时文件已被删除?