使用SMTP服务器通过电子邮件发送附件

问题描述:

我对使用带附件的外部SMTP服务器发送电子邮件的方式有点困惑。使用SMTP服务器通过电子邮件发送附件

比方说,我在我的网站上有一个联系表,允许上传附件,并使用外部SMTP服务器,例如Amazon SES或Gmail。

是否需要先将文件上传到我的服务器,然后将电子邮件附件指向该文件路径,还是将其转换为base64并在SMTP主体内发送?

问:请问文件中获取直接发送或它首先需要被上传到我的服务器?

+1

无论何时使用文件上传并将其发布到服务器,它都会上传到临时目录,通常是基于unix的系统上的'/ var/tmp'。我建议在Unix上为SMTP邮件使用邮件框架,比如PHPMailer,因为这在处理套接字连接方面做得非常好,并且支持发送附件。附件可以直接从tmp目录发送。 – 2014-09-03 08:27:59

  1. 浏览器必须向嵌入了文件的HTTP服务器发出HTTP请求。
  2. HTTP服务器读取请求并将其交给PHP。
  3. PHP读取请求并从中提取文件(由于PHP的实现方式,这将涉及将其存储为临时文件,在PHP程序运行结束后将被删除)
  4. 您的PHP程序需要从文件中读取数据并将其嵌入在电子邮件作为附件
  5. 所得电子邮件消息(包括附件)被传递通过SMTP

没有必要商店该文件的服务器上。

+0

好的,所以它需要被移到我的服务器,但只是暂时的。超级,谢谢。 – 2014-09-03 08:38:14