我正在尝试使用 cURL 发送电子邮件(不幸的是我不能使用 API 或 php 库)。我可以轻松发送 HTML 格式的邮件——网络上有大量演示和示例。但是,我正在努力发送简单的纯文本电子邮件。
我一直在尝试改编 HTML 示例,但没有成功。
我目前正在发送:
--mail-from [email protected]
--mail-rcpt [email protected]
--user john.doe:Pa55w0rd
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
From: John Doe <[email protected]>
To: Jane Doe <[email protected]>
Subject: Test email
Some text
但是,服务器响应: 252 2.1.5 Verification not supported
仔细研究,我发现此错误似乎与验证用户帐户的尝试有关(出于可以理解的安全原因,许多邮件服务器不支持该错误),而不是尝试发送邮件。
我的语法显然不正确,因为我不是在尝试验证用户,但我在网上找不到任何可以使用的示例。但是我已经成功地通过 cURL 将带有嵌入图像的 HTML 邮件发送到同一邮件服务器!
如果使用-T
( --upload-file
) 选项,curl 将不会发出VRFY
命令。
见https://ec.haxx.se/usingcurl-smtp.html
例子:
curl smtp://mail.example.com --mail-from [email protected] \
--mail-rcpt [email protected] \
--upload-file email.txt
当 curl 有消息要发送时,它不会 VRFY 而是执行MAIL FROM...RCPT TO
.
来自man curl
:
--mail-rcpt (SMTP) 指定单个地址、用户名或邮件列表名称。
执行邮件传输时,收件人应指定一个有效的电子邮件地址来发送邮件。(在 7.20.0 中添加)
执行地址验证(VRFY 命令)时,应将收件人指定为用户名或用户名和域(按照 RFC5321 的第 3.5 节)。(在 7.34.0 中添加)
没有很好地说明,但是如果命令缺少消息(-T
或--upload-file
),则 curl 会执行地址验证。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句