用php邮件发送带附件的电子邮件

时间:2012-08-05 11:42:17

标签: email attachment phpmailer

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

1 个答案:

答案 0 :(得分: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'];
            }

然后我准备这个文件的路径,该文件现在位于temp目录中并识别新的文件名:

$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);

完成!文件已附加。