3

谁能告诉我使用 phpMailer 发送带有附件的电子邮件的步骤。我已经准备好所有代码来发送电子邮件本身,它工作正常,但我不明白如何发送附件。我有表单,如果我从 POST 上的文件输入中获取值,它只会给我文件名而不是完整路径。我认为为了添加附件,我需要获取文件的完整路径,对吗?我不必将文件存储在服务器上,只需要通过电子邮件发送即可。

4

1 回答 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 回答