谁能告诉我使用 phpMailer 发送带有附件的电子邮件的步骤。我已经准备好所有代码来发送电子邮件本身,它工作正常,但我不明白如何发送附件。我有表单,如果我从 POST 上的文件输入中获取值,它只会给我文件名而不是完整路径。我认为为了添加附件,我需要获取文件的完整路径,对吗?我不必将文件存储在服务器上,只需要通过电子邮件发送即可。
问问题
3389 次
1 回答
4
我找到了解决方案:首先,在我的表单中,我必须包含 enctype="multipart/form-data" 来发送文件,所以它必须是这样的:
<form method="POST" action="send.php" enctype="multipart/form-data">
inputs...
</form>
之后我以这种方式获取文件:
if(is_uploaded_file($_FILES['myfile']['tmp_name'])) {
$file = $_FILES['myfile'];
}
然后我准备该文件的路径,该文件现在位于临时目录中并识别新文件名:
$attachment_path = $this->file['tmp_name'];
//If need to give new name for the file:
//$newfilename = pathinfo(basename($this->file['name']));
//$attachment_name = "attachment_new_name.".$newfilename['extension'];
$attachment_name = basename($this->file['name']);
$mail->AddAttachment($attachment_path, $attachment_name);
完毕!现在附上文件。
于 2012-08-05T13:45:57.980 回答