如何使用 telnet 使用 Mailgun 通过 SMTP 发送测试电子邮件?
How to send a test email over SMTP with Mailgun using telnet?
我已经为我的域配置了 Mailgun:blog.kop.com
(假域),我已经在 mailgun 仪表板上为这个域重置了我的 SMTP 密码。
我通常使用 Mailgun API,这就是为什么我想测试从命令行发送的 SMTP 以检查我是否拥有正确的凭据,例如,我将使用以下密码:
- 用户名:
postmaster@blog.kop.com
(我猜的)
- 密码:
d3bec33d3bc3e333333b3e333a3e33-3a3aa3d3-333ddf3
(mailgun给的)
我就是这样做的:
- 将
username
转换为 base64:
$ echo postmaster@blog.kop.com | base64
cG9zdG1hc3RlckBibG9nLmtvcC5jb20K
- 将
password
转换为 base64:
$ echo d3bec33d3bc3e333333b3e333a3e33-3a3aa3d3-333ddf3 | base64
ZDNiZWMzM2QzYmMzZTMzMzMzM2IzZTMzM2EzZTMzLTNhM2FhM2QzLTMzM2RkZjMK
- 使用
telnet
客户端测试通过 SMTP 在端口 587
(STARTTLS) 上发送电子邮件:
$ telnet smtp.mailgun.org 587
Trying 3.93.221.84...
Connected to smtp.mailgun.org.
Escape character is '^]'.
220 Mailgun Influx ready
ehlo blog.kop.com
250-smtp-out-n01.prod.us-east-1.postgun.com
250-AUTH PLAIN LOGIN
250-SIZE 52428800
250-8BITMIME
250-SMTPUTF8
250-PIPELINING
250 STARTTLS
AUTH LOGIN
334 VXNlcm5hbWU6
cG9zdG1hc3RlckBibG9nLmtvcC5jb20K
334 UGFzc3dvcmQ6
ZDNiZWMzM2QzYmMzZTMzMzMzM2IzZTMzM2EzZTMzLTNhM2FhM2QzLTMzM2RkZjMK
535 Authentication failed
Connection closed by foreign host.
看来我的凭据不正确,这是通过 SMTP 发送邮件的 mailgun 文档:https://documentation.mailgun.com/en/latest/user_manual.html#sending-via-smtp
我也尝试使用那里的代码片段和他们的 swaks
程序:https://documentation.mailgun.com/en/latest/quickstart-sending.html#send-via-smtp
我的凭据也有误。我复制粘贴了凭据并确认它们是正确的。
我已经在使用 API 时遇到了这个问题,mailgun 文档为欧洲地区提供了错误的 api 地址。我现在认为 smtp.mailgun.org
不是欧洲地区的正确服务器,但我找不到与之相关的任何内容。
- 这些步骤有什么问题?
- 为什么我发送邮件失败?
- 如何使用 mailgun、starttls 和 telnet 通过 SMTP 发送电子邮件?
当您 echo
一个字符串时,您包含一个换行符,但换行符不应包含在您传递给 SMTP AUTH
的凭据中。尝试
printf '%s' 'postmaster@blog.kop.com' | base64
密码也类似。
使用裸 Telnet 听起来是一种非常脆弱的方法;您真的想使用合适的 SMTP 客户端与 SMTP 服务器通信。
对于欧洲,SMTP 地址是 smtp.eu.mailgun.org
。
我已经为我的域配置了 Mailgun:blog.kop.com
(假域),我已经在 mailgun 仪表板上为这个域重置了我的 SMTP 密码。
我通常使用 Mailgun API,这就是为什么我想测试从命令行发送的 SMTP 以检查我是否拥有正确的凭据,例如,我将使用以下密码:
- 用户名:
postmaster@blog.kop.com
(我猜的) - 密码:
d3bec33d3bc3e333333b3e333a3e33-3a3aa3d3-333ddf3
(mailgun给的)
我就是这样做的:
- 将
username
转换为 base64:
$ echo postmaster@blog.kop.com | base64
cG9zdG1hc3RlckBibG9nLmtvcC5jb20K
- 将
password
转换为 base64:
$ echo d3bec33d3bc3e333333b3e333a3e33-3a3aa3d3-333ddf3 | base64
ZDNiZWMzM2QzYmMzZTMzMzMzM2IzZTMzM2EzZTMzLTNhM2FhM2QzLTMzM2RkZjMK
- 使用
telnet
客户端测试通过 SMTP 在端口587
(STARTTLS) 上发送电子邮件:
$ telnet smtp.mailgun.org 587
Trying 3.93.221.84...
Connected to smtp.mailgun.org.
Escape character is '^]'.
220 Mailgun Influx ready
ehlo blog.kop.com
250-smtp-out-n01.prod.us-east-1.postgun.com
250-AUTH PLAIN LOGIN
250-SIZE 52428800
250-8BITMIME
250-SMTPUTF8
250-PIPELINING
250 STARTTLS
AUTH LOGIN
334 VXNlcm5hbWU6
cG9zdG1hc3RlckBibG9nLmtvcC5jb20K
334 UGFzc3dvcmQ6
ZDNiZWMzM2QzYmMzZTMzMzMzM2IzZTMzM2EzZTMzLTNhM2FhM2QzLTMzM2RkZjMK
535 Authentication failed
Connection closed by foreign host.
看来我的凭据不正确,这是通过 SMTP 发送邮件的 mailgun 文档:https://documentation.mailgun.com/en/latest/user_manual.html#sending-via-smtp
我也尝试使用那里的代码片段和他们的 swaks
程序:https://documentation.mailgun.com/en/latest/quickstart-sending.html#send-via-smtp
我的凭据也有误。我复制粘贴了凭据并确认它们是正确的。
我已经在使用 API 时遇到了这个问题,mailgun 文档为欧洲地区提供了错误的 api 地址。我现在认为 smtp.mailgun.org
不是欧洲地区的正确服务器,但我找不到与之相关的任何内容。
- 这些步骤有什么问题?
- 为什么我发送邮件失败?
- 如何使用 mailgun、starttls 和 telnet 通过 SMTP 发送电子邮件?
当您 echo
一个字符串时,您包含一个换行符,但换行符不应包含在您传递给 SMTP AUTH
的凭据中。尝试
printf '%s' 'postmaster@blog.kop.com' | base64
密码也类似。
使用裸 Telnet 听起来是一种非常脆弱的方法;您真的想使用合适的 SMTP 客户端与 SMTP 服务器通信。
对于欧洲,SMTP 地址是 smtp.eu.mailgun.org
。