教你用命令行的方式发送Email
来源:互联网 发布:mysql 打印错误信息 编辑:程序博客网 时间:2024/05/22 14:17
题记:
如果你觉得这对你来说已经没有什么问题,那么请你继续看下去,我的文章会对你有帮助;
如果你觉得很神奇,那么你可以继续阅读下面的文章。下面的文章,会让你更清晰的理解一个smtp协议的工作方式的。
开始工作:
A:简单smtp连接:如163,qq,126等命令行的工作方式
A1:准备工作:
打开telnet服务器和客户端服务
vista之前的版本:
1.打开“控制面板”→“管理工具”→“服务” 或者在“ 开始”→“运行”,输入:“services.msc”
2.找到telnet 修改为手动或者自动,然后启动该程序。
Win7和windows Server 2008:
1.“开始”→“控制面板”→“程序”,“在程序和功能”找到并点击“打开或关闭Windows 功能”
2.进入Windows 功能设置对话框。找到并勾选“Telnet客户端,最后“确定”稍等片刻即可完成安装
3.服务器端同上。
A2:本文以163的邮箱为例
1.在“ 开始”→“运行”,输入:telnetsmtp.163.com25
2. 连接成功会提示:“220 ……”,连接失败会提示:“…… 连接失败”(……不需要关系)
3.连接成功之后,输入:ehloname回车
4.服务响应输出为: 一串250开头的字符串,这个不需要关系,也就是成功的意思。
如果有AUTH LOGIN,那么你可以继续下面的工作,如果没有看下一段gmail的方式。
5.输入:auth login
6.服务提示334 ……,提示输入用户名,因为smtp验证用户名和密码是需要base64编码的,这个你不需要关心,
一个网址:http://maclife.net/tools/base64/ 把你的163的用户名和密码进行一次编码,然后输入用户名的base64编码。
7.服务提示334……,即需要输入输入密码,输入base64密码
8.登录成功的标识是:250(每当看到250我就感觉怪怪的)
9.接下的几个命令一次为:mail from:<From email address>
rcpt to:<To email address>
data
10.如果每次都返回250,那么下面你就可以输入邮件的正文了,当然也可以有一些标准,如Mail from ,mail to,subject,date等关键字来格式化你的email.
11.email正文写完之后,回车输入"."回车,记得一定是单独的英文模式下的句号,单独一行,表示email内容完毕。
11.返回250,表明发送成。成功附图:
每一步的操作如下:
OK到此简单的命令行发送email就ok了。上文也说了,如果碰到gmail该如何办呢?
B:复杂的smtp连接方式:如gmail
因为gmail的连接需要的是starttls进行连接,但是telnet不支持这种连接方式。命令行下用openssl,可以进行starttls的方式进行连接smtp服务器。
B1:准备工作:
下载并安装opensll,下载地址: http://www.openssl.org or http://www.slproweb.com/products/Win32OpenSSL.html
B2:gmail为例,进行操作。
1.在openssl安装目录下,找到bin目录下的openssl.exe,点击并运行
2.输入命令:s_client -starttls smtp -connect smtp.gmail.com:25
3.提示250,标识starttls连接成功。
4.输入ehlo name
5.下面的如上面所述163发送email是一样的了。
总结:
使用以上两种方式都能进行发送email,这有助于更深入的了解smtp协议的。想了解更多请参看:http://www.longen.org/s-z/details~z/smtp.htm
通过本文,希望你能对smtp协议有一个更深刻的认识。也能给你编程提供一些思想。
如:可以使用命令行的方式,进行批量发送email。
如果自己制作客户端,进行发送email呢?
参看http://blog.csdn.net/chary8088/article/details/4526332你讲找到答案。
- 教你用命令行的方式发送Email
- 教你用命令行扩展VHD的大小
- 用命令行方式进行WIndows的网络设置
- Win7下用命令行方式收发邮件的方法
- 用命令行发送键盘,touch消息
- 用命令行发送键盘,touch消息
- 用命令发送邮件
- 用命令行方式启动Selenium Server
- 用命令行方式管理Android项目
- Android用命令行方式查看数据库
- 用命令行方式关闭CentOS防火墙
- 用命令行方式启动Selenium Server
- 用命令行方式升级Android SDK
- 用命令行方式写Android应用
- cc2640 用命令行方式烧录
- 用命令行方式升级Android SDK
- git 怎么用命令发送patch补丁、send-email下载和配置
- 用命令行的方式把文件夹中的文件以目录树的方式显示出来
- cocos2d - 点 和 像素
- 使用VC取得文件关联图标的方法
- Google的自动驾驶汽车无事故成功完成30万英里的驾驶路程
- “MMC无法在比Internet Explorer 5.5以前的Internet Explorer版本上运行。
- js控制文本框只能输入数字
- 教你用命令行的方式发送Email
- Application对象的使用-数据传递以及内存泄漏.
- vc++实现文件关联
- 你知道的java和你不知道的java
- 分享最新收集的HTML5和CSS3的网站设计模板
- VC 实现文件关联
- CAD做图常用的命令
- 憋出来的脚本
- ZendFramework学习第二章(为变量赋值)