【问题标题】:Emailing attachments using SMTP server使用 SMTP 服务器通过电子邮件发送附件
【发布时间】:2014-10-27 16:10:40
【问题描述】:

我对使用带有附件的外部 SMTP 服务器发送电子邮件的工作原理有点困惑。

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

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

问题:文件是直接发送还是需要先上传到我的服务器?

【问题讨论】:

  • 每当您使用文件上传并将其发布到服务器时,它将被上传到临时目录中,通常在基于 unix 的系统上为/var/tmp。我建议在 Unix 上为 SMTP 邮件使用邮件框架,比如 PHPMailer,因为它在处理套接字连接方面做得很好,并且支持发送附件。附件可以直接从tmp目录发送。

标签: php email


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

不需要在服务器上存储文件。

【讨论】:

  • 好的,所以它需要移动到我的服务器,但只是暂时的。太好了,谢谢。
猜你喜欢
  • 2018-10-17
  • 1970-01-01
  • 2022-01-09
  • 2014-10-15
  • 1970-01-01
  • 2016-02-09
  • 2017-05-19
相关资源
最近更新 更多