我正在尝试使用 cURL 发送电子邮件。它必须包含一个附件,所以我使用 -F / --form 选项:
(这是一行,但我在这里写这种方式是为了澄清)
curl smtp://smtp.example.com
--ssl
--mail-from [email protected]
--mail-rcpt [email protected]
--user login
-F "=<body.txt;encoder=quoted-printable"
-F "[email protected];encoder=base64"
它有点工作;邮件到达,但我不知道如何在电子邮件本身上设置标题(事实上,我现在唯一需要的是主题)。
我尝试将其设置为第一部分(文本):
-F "=<body.txt;encoder=quoted-printable;headers=Subject: The files you requested"
但是 cURL 有效地将标题设置为该部分,从而产生这样的电子邮件(原始文本):
(email headers not including Subject)
-----------------part-boundary
Content-Transfer-Encoding: quoted-printable
Subject: The files you requested
(content of body.txt)
-----------------part-boundary
Content-Disposition: attachment; filename="files.zip"
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
(content of files.zip encoded in base64)
-----------------part-boundary--
那么,如何设置邮件的主题呢?
尽管文档仅提及 HTTP,但 -H / --header 选项也适用于 SMTP。
所以设置邮件主题的方法就是在命令行中加入这个选项:
但是,由于需要其他标题(如 To: 和 CC:),您可能希望将它们全部写入文件并使用它:
而已。
完全工作的例子在这里。它分解了 curl 命令的所有元素,因此您可以看到它与所有组件一起使用以创建带有附件的消息,确定附件的 MIME 类型并在没有任何临时文件且仅使用本机的情况下发送所有内容卷曲。(GitHub-发送-ses)