windows下使用cmd(命令行)发送邮件

时间:2022-03-09 12:53:15

因为课程设计需要用到java邮件开发相关的东西,就顺便看了一下怎么使用cmd命令行发邮件,现在记录如下:

① 邮箱开启POP3/SMTP和IMAP/SMTP服务

我用的qq邮箱(用网易的死活发不出去,知道原因的大神请私信或者评论一下,感激不尽),使用qq邮箱用cmd命令行发邮件时需要开启POP3/SMTP和IMAP/SMTP服务,开启这两项服务需要设置qq邮箱独立密码。开启服务的方法:

登录qq邮箱,在设置菜单中选择账户标签,在页面中间部分有开启服务,如果没有设置独立密码,在开始过程中会要求你设置独立密码。

②  windows开启telnet服务

打开控制面板,找到“打开或关闭windows功能”(在“程序”里面),选中对话框中的Telnet客户端Telnet服务器(可能不需要,没测试),然后确定,等待完成。这时就开启了telnet功能。

③ 开始发送邮件

(发送邮件过程中不要长时间不操作命令行窗口,超过一定时间不操作的话服务器主机会主动断开连接,命令行窗口提示“遗失对主机的连接”)

1)打开命令行窗口,连接邮件服务器

在命令刚窗口输入 telnet smtp.qq.com 25
(2015年6月19,25是端口号,一般情况下不会变)
如果连接成功,服务器会返回一串字符:220 smtp.qq.com Esmtp QQ Mail Server

2)向服务器表明身份

在命令行输入 helo qq.com
如果成功,服务器返回 250 smtp.qq.com
(qq.com可以用任何合法字符代替,本人用的名字拼音也通过了)

3)登录认证

在命令行窗口输入  auth login
如果成功,服务器会返回一串字符,类似于:334 VXNlcm5hbWU6
(334 是不变的,后面的字母可能会变)
接着输入你的邮箱(xxxxx@qq.com)的base64编码之后的字符串然后回车
如果成功,服务器返回一串字符,类似于:334 UGFzc3dvcmQ6
(334 是不变的,后面的字母可能会变)
接着输入你的独立密码(注意是独立密码)的base64编码之后的字符串然后回车
如果登录成功,服务器返回一串字符:235 Authentication successful
表示登录成功,如果不能成功登录,请检查账号密码是否正确。

4)编写邮件

输入 mail from:<你自己的邮箱,就是上一步的登录邮箱xxx@qq.com> 回车
(冒号和尖括号均为因为半角标点符号)
若格式不正确,服务器返回501 错误;若格式正确,服务器返回250 Ok。

输入 rcpt to:<收件人邮箱,xxx@xxx.xxx> 回车
若格式不正确,服务器返回501错误;若格式正确,服务器返回250 Ok。

输入 data 回车
服务器返回 354 End data with <CR><LF>.<CR><LF>

输入 from:名字 回车,显示在收件人收邮件时的 发件人 位置
输入 to:名字 回车,显示收件人收邮件时的 收件人 位置

输入 subject:主题 回车,邮件主题
空一行写邮件内容,写完之后换行,输入英文半角状态下的句号 .  表示邮件内容写完了(不要问我正文中如果包含英文半角状态下的句号怎么办)
服务器返回 250 Ok: queues as

表示邮件已经发送

下图为作者发送邮件的过程

windows下使用cmd(命令行)发送邮件