在日常工作和学习中,我们时常需要使用电子邮件进行信息交流和文件传输。其中发送邮件的方式有多种,其中最常见的是登录邮箱网页发送,使用第三方邮件客户端(如Outlook、Thunderbird等)发送,以及利用命令行发送SMTP协议邮件。
本文将详细介绍如何使用命令行发送SMTP协议邮件,并以163邮箱为例进行讲解。同时还会提供一些常见的错误和解决方法,以供参考。
一、准备工作
在发送邮件之前,我们需要先了解SMTP协议,并准备好相关的信息,包括发件人邮箱、SMTP服务器地址、SMTP服务器端口、SMTP服务器用户名和密码等。以下是163邮箱SMTP服务器相关信息:
SMTP服务器地址:smtp.163.com
SMTP服务器端口:25
SMTP服务器用户名:发件人的163邮箱帐号(例如:abc@163.com)
SMTP服务器密码:发件人的163邮箱密码
当然,如果使用的是其他邮件服务商,其SMTP服务器地址、端口、用户名和密码可能会有所不同,需要根据实际情况进行更改。
此外,我们还需要一些命令行工具,其中最常用的是telnet(用于通过命令行与远程主机进行通信)和openssl(用于加密和验证网络传输数据)。在Windows系统中,我们可以直接使用命令行工具,而在MacOS和Linux系统中,我们需要先安装相应的软件包。
二、使用命令行发送邮件
1. 在Windows系统中使用telnet发送邮件
步骤一:打开命令提示符
在开始菜单中搜索“cmd”并打开命令提示符,或者直接按下Win+R键,在运行框中输入“cmd”并按下回车键。
步骤二:打开telnet
在命令提示符中输入“telnet smtp.163.com 25”,并按下回车键。
步骤三:输入命令
在telnet界面中输入以下命令(注意把红色部分替换为实际参数):
```
HELO 163.com
auth login
(输入授权帐号,即发件人邮箱,Base64编码)
(输入授权密码,即发件人邮箱密码,Base64编码)
mail from:<发件人邮箱>
rcpt to:<收件人邮箱>
data
Subject:邮件主题
Content-Type:text/plain;charset=utf-8
(邮件内容)
.
quit
```
其中,HELO命令用于向服务器问候,auth login命令用于进行SMTP认证,mail from表示发件人邮箱,rcpt to表示收件人邮箱,data进入邮件内容输入模式,Subject表示邮件主题,Content-Type表示邮件内容的格式(这里为纯文本格式),最后的“.”表示结束邮件内容输入,quit命令用于退出telnet会话。
举例说明:
```
> telnet smtp.163.com 25
220 163.com Anti-spam GT for Coremail System (163com[20141201])
EHLO 163.com
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN
250-coremail 1Uxr2xKj7kG0xkI17xGrUDI0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrEUUUU
250-STARTTLS
250 8BITMIME
auth login
334 dXNlcm5hbWU6
YWJjMTIzQDE2My5jb20=
334 UGFzc3dvcmQ6
MTIzNDU2Nzg=
mail from: 250 Mail OK rcpt to:<123@qq.com> 250 Mail OK data 354 End data with Subject:邮件主题 Content-Type:text/plain;charset=utf-8 这是测试邮件。 谢谢! . 250 Mail OK queued as smtp20,MrCowACgBjKanMdMvtgbyg--.13733S2 1631400291 quit 221 Bye Connection to host lost. ``` 步骤四:查看邮件 发送成功后,我们需要登录收件人邮箱进行查看,此时应该能够接收到来自发件人的测试邮件。 2. 在MacOS或Linux系统中使用openssl发送邮件 步骤一:打开终端 在Launchpad或应用程序中找到终端并打开。 步骤二:打开openssl 在终端中输入以下命令: ``` openssl s_client -connect smtp.163.com:25 -starttls smtp ``` 其中,s_client命令用于连接到SMTP服务器进行通信,-connect选项用于指定连接地址和端口号,-starttls选项表示使用TLS协议。 步骤三:输入命令 连接到SMTP服务器后,在命令提示符后输入以下命令(注意把红色部分替换为实际参数): ``` EHLO 163.com auth login (输入授权帐号,即发件人邮箱,Base64编码) (输入授权密码,即发件人邮箱密码,Base64编码) mail from:<发件人邮箱> rcpt to:<收件人邮箱> data Subject:邮件主题 Content-Type:text/plain;charset=utf-8 (邮件内容) . quit ``` 与Windows系统中使用telnet发送邮件的步骤类似,不同之处在于输入命令的方式不同。 举例说明: ``` > openssl s_client -connect smtp.163.com:25 -starttls smtp CONNECTED(00000003) depth=0 CN = *.163.com,OU = Free SSL,O = CaiXin,ST = Beijing,C = CN,postalCode = 100029,street = 6 Xibeiwang East Road,L = Haidian District verify error:num=18:self signed certificate verify return:1 depth=0 CN = *.163.com,OU = Free SSL,O = CaiXin,ST = Beijing,C = CN,postalCode = 100029,street = 6 Xibeiwang East Road,L = Haidian District verify return:1 --- Certificate chain 0 s:CN = *.163.com,OU = Free SSL,O = CaiXin,ST = Beijing,C = CN,postalCode = 100029,street = 6 Xibeiwang East Road,L = Haidian District i:CN = *.163.com,OU = Free SSL,O = CaiXin,ST = Beijing,C = CN,postalCode = 100029,street = 6 Xibeiwang East Road,L = Haidian District --- Server certificate -----BEGIN CERTIFICATE----- MIID+zCCAuegAwIBAgIJAJOVn2nLomhZMA0GCSqGSIb3DQEBCwUAMIGVMTAwMwYD VQQDDCxqLm5ldHdvcmtzaG9wLmNvbS9jYTJiNWNmNC04NWRkLTExZTktODNjNi05 NjE1YWQxZGQ2ZTAwHhcNMjQwMjA4MTI1OTE5WhcNMjkwMjA4MTIxMTIxWjCBlTEx MDAwBgNVBAMTLWhhLm5ldHdvcmtzaG9wLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD ggEPADCCAQoCggEBAKvFOrLdNghOvjg1nwRxO/mJ/2QSm6U+X9UyOtbU1CK6eJDI wIhr0L7sWJ0sWhs7FLmGPlX+MUQmJzT3qFmGZwYBUZn2nWACBO3Mf4pBtJXyV7xW AmvzS7a10Y5In5J7pA8cIt5Va5e5SFTEgJIVfzG8/OvK/y2bYrvuQ+bQZ8gdKj4q 3tuhkBpV+nCm0RohWV7lS0/XoNgJ/InKe1VBpOfojJUrpiN0mdHSEyOibOyBQJjK KFDFdJbHjzlukfpkc2AkDcoUzoen6jE9Jcunlw65RGbIbvKMjJpLpwjKcRgIz71s mieTjfb2GHwh9/tGAKqhF+q3PIw/bEiFm0RcWUsCAwEAAaOBwjCBvzAJBgNVHRME AjAAMAsGA1UdDwQEAwIHgDALBgNVHQ8EBAMCAYYwDQYJKoZIhvcNAQELBQADggEB ALE8lW5KvcnjynbFayEIPyzXHZfWggRTzKjZNbAOdf7Q2ej03JhK4V3qtdtLp7Vn K8Wx7iFUvJFhvZwY1YuIvWhs+SUmAmRkeK9yTQfHIq3rIHz8AV+DpuZpaKwZEHzz 2hs47bIkmznUyXHJ6eyF+anCfU26x7Z52OZHPr0m5OR5xpGl8KjEvyNYX0RKfska zQetKnKxg7NQ2fayNycYo3G4z8aF7V9XBRt1f7piPAvz8WSoV7RNZwYd81jmev4c WHpqVbXy+I/cuJ7vzw8lRzGW+ZJMoy5n5n5M5pMFjKcbMe/Q9jq5e/dyx7z2yyjJ LoZC1jYJaJUgI+SGfa+w6Ug= -----END CERTIFICATE----- subject=CN = *.163.com,OU = Free SSL,O = CaiXin,ST = Beijing,C = CN,postalCode = 100029,street = 6 Xibeiwang East Road,L = Haidian District issuer=CN = *.163.com,OU = Free SSL,O = CaiXin,ST = Beijing,C = CN,postalCode = 100029,street = 6 Xibeiwang East Road,L = Haidian District --- No client certificate CA names sent --- SSL handshake has read 1513 bytes and written 513 bytes Verification error: self signed certificate --- New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA Server public key is 1024 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE SSL-Session: Protocol : TLSv1 Cipher : DHE-RSA-AES256-SHA Session-ID: 0955883194C3EC4F4B9EF7E1B40B33D7B47A7808FD730532F171E27C00C43D62 Session-ID-ctx: Master-Key: 6503AC3B60EAFB0B1DDE98BAAF0EE0D2358428AF59AAEAFB6DFA7816C6920F964FCB3E9A1A3EDABAE49165902212A80A Key-Arg : None Start Time: 1613377341 Timeout : 300 (sec) Verify return code: 18 (self signed certificate) --- 250-mail 250-PIPELINING 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN 250-coremail 1Uxr2xKj7kG0xkI17xGrUDI0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrEUUUU 250-STARTTLS 250 8BITMIME auth login 334 dXNlcm5hbWU6 YWJjMTIzQDE2My5jb20= 334 UGFzc3dvcmQ6 MTIzNDU2Nzg= mail from: 250 Mail OK rcpt to:<123@qq.com> 250 Mail OK data 354 End data with Subject:邮件主题 Content-Type:text/plain;charset=utf-8 这是测试邮件。 谢谢! . 250 Mail OK queued as smtp61,MrCowAAkNTmaaaAKEM6KOw--.17790S2 1631800683 quit 221 Bye Bye closed ``` 步骤四:查看邮件 同样需要登录收件人邮箱进行查看,可以在收件箱中找到测试邮件。 三、常见问题解决方法 1. 报错“535 Error: authentication failed” 这个错误表示SMTP服务器拒绝了认证信息。解决方法一般有两个,一是检查账号和密码是否正确,二是检查是否需要开启SMTP服务(在163邮箱中是需要手动开启的)。 2. 报错“421 Login timeout exceeded” 这个错误表示登录超时,可能是因为网络问题导致连接超时。解决方法可以尝试重新连接SMTP服务器,并检查网络是否正常。 3. 报错“552 5.7.0 SPAM Content Found” 这个错误表示邮件被认为是垃圾邮件。解决方法包括检查邮件内容是否合规、附件是否包含病毒等。 4. 报错“554 DT:SPM” 这个错误表示邮件发送失败,可能是因为批量发送、内容不符合规定等原因。解决方法可以尝试重新发送邮件,并注意遵守发送规定。 总结: 本文详细介绍了如何使用命令行发送SMTP协议邮件,包括Windows系统中使用telnet命令和MacOS或Linux系统中使用openssl命令。同时还提供了常见问题的解决方法,希望能够为读者在日常工作和学习中发送邮件提供帮助和参考。 如果你喜欢我们三七知识分享网站的文章,
欢迎您分享或收藏知识分享网站文章
欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复