| 下载本节例子程序和源代码 (9.67 KB) |
| Socket连接后,按 ESMTP 协议通讯(注意每条命令结尾符“回车\换行\.\回车\换行”结束): 1、EHLO <Domain>\r\n 这条命令可以不要,但是按照标准的写法,还是加上好。 Example: EHLO smtp.163.net\r\n 2、AUTH LOGIN\r\n 告诉服务器,要进行验证了。 3、Base64_Username\r\n 发送经过 Base64 编码的用户名给服务器。 4、Base64_Password\r\n 发送经过 Base64 编码的密码给服务器。 5、MAIL FROM: 发送者的Email地址。 Example: MAIL FROM: lcother@163.net\r\n 6、RCPT TO: 目标Email地址。 Example: RCPT TO: target@163.net\r\n 7、DATA\r\n 开始传送数据。 8、发送数据\r\n.\r\n 注意:SMTP协议只发送信息,至于如何区分CC、BCC、Subject、Body等不属于SMTP的范围,详情请查看RFC文档MAIL格式部分 简单说一下MAIL格式:Sunject:<主题>\r\n\r\n<内容>,还有好多…… 返回值为“250 ***”表示正常,同时***里含有MessageID等信息(前面的命令都有相应的返回信息) 9、QUIT\r\n Over,走人…… |
| "EHLO smtp.163.net", 13, 10 "AUTH LOGIN", 13, 10 "lcother", 13, 10 "lcother_password", 13, 10 "MAIL FROM:lcother@163.net", 13, 10 "RCPT TO:target@163.net", 13, 10 "DATA", 13, 10 "From: 老罗", 13, 10,\ "To: Somebody", 13, 10, \ "Subject: 你好吗?", 13, 10, 0 "MIME-Version: 1.0", 13, 10, \ "X-Mailer: LCMailer by LC", 13, 10, \ "Content-type:multipart/mixed;Boundary=www.LuoCong.com", 13, 10, 13, 10, \ "--www.LuoCong.com", 13, 10, \ "Content-type:text/plain;Charset=GB2312", 13, 10, \ "Content-Transfer-Encoding:8bit", 13, 10, 13, 10, \ "好久不见,最近过得好吗?(正文内容)", 13, 10, 13, 10, 0, \ .if (有附件) "--www.luocong.com", 13, 10, \ .while (files to be sent) 13, 10, \ 13, 10, \ "--", 13, 10, \ "Content-Type:application/octet-stream;Name=文件名", 0, \ "Content-Disposition:attachment;FileName=文件名", 0, \ 13, 10, \ "Content-Transfer-Encoding:Base64", 13, 10, 13, 10, 0, \ 经过 Base64 编码的文件内容, 13, 10, 0\ .endw .endif 13, 10, \ "--www.luocong.com--", \ 13, 10, ".", 13, 10 "QUIT", 13, 10 |
| #include "resource.h" #define IDI_LC 1 #define IDC_BUTTON_SEND 3000 #define IDC_EDIT_SMTPSERVER 3001 #define IDC_EDIT_USERNAME 3002 #define IDC_EDIT_PASSWORD 3003 #define IDC_EDIT_FROM 3004 #define IDC_EDIT_TO 3005 #define IDC_EDIT_SUBJECT 3006 #define IDC_EDIT_CONTENT 3007 #define IDC_EDIT_ATTACHMENT 3008 #define IDC_BUTTON_BROWSE 3009 #define IDC_STATIC -1 IDI_LC ICON "lc.ico" LC_DIALOG DIALOGEX 10, 10, 200, 280 STYLE DS_SETFONT | DS_CENTER | WS_MINIMIZEBOX | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "ESmtp demo by LC, 2002-11-2" FONT 9, "宋体", 0, 0, 0x0 BEGIN GROUPBOX "服务器信息", IDC_STATIC, 5, 5, 190, 60 LTEXT "SMTP服务器:", IDC_STATIC, 15, 20, 50, 10 LTEXT "用 户 名:", IDC_STATIC, 15, 35, 50, 10 LTEXT "密 码:", IDC_STATIC, 15, 50, 50, 10 GROUPBOX "邮件信息", IDC_STATIC, 5, 75, 190, 170 LTEXT "发信人电邮:", IDC_STATIC, 15, 90, 50, 10 LTEXT "收信人电邮:", IDC_STATIC, 15, 105, 50, 10 LTEXT "主 题:", IDC_STATIC, 15, 120, 50, 10 LTEXT "附 件:", IDC_STATIC, 15, 135, 50, 10 EDITTEXT IDC_EDIT_SMTPSERVER, 65, 20, 120, 10, ES_AUTOHSCROLL | NOT WS_BORDER, WS_EX_STATICEDGE EDITTEXT IDC_EDIT_USERNAME, 65, 35, 120, 10, ES_AUTOHSCROLL | NOT WS_BORDER, WS_EX_STATICEDGE EDITTEXT IDC_EDIT_PASSWORD, 65, 50, 120, 10, ES_PASSWORD | ES_AUTOHSCROLL | NOT WS_BORDER, WS_EX_STATICEDGE EDITTEXT IDC_EDIT_FROM, 65, 90, 120, 10, ES_AUTOHSCROLL | NOT WS_BORDER, WS_EX_STATICEDGE EDITTEXT IDC_EDIT_TO, 65, 105, 120, 10, ES_AUTOHSCROLL | NOT WS_BORDER, WS_EX_STATICEDGE EDITTEXT IDC_EDIT_SUBJECT, 65, 120, 120, 10, ES_AUTOHSCROLL | NOT WS_BORDER, WS_EX_STATICEDGE EDITTEXT IDC_EDIT_ATTACHMENT, 65, 135, 100, 10, ES_AUTOHSCROLL | NOT WS_BORDER | ES_READONLY | NOT WS_TABSTOP, WS_EX_STATICEDGE PUSHBUTTON "..", IDC_BUTTON_BROWSE, 170, 135, 15, 10, BS_FLAT | BS_RIGHT | BS_BOTTOM EDITTEXT IDC_EDIT_CONTENT, 15, 150, 170, 85, ES_AUTOVSCROLL | NOT WS_BORDER | WS_VSCROLL | ES_WANTRETURN | ES_MULTILINE, WS_EX_STATICEDGE DEFPUSHBUTTON "发送(&G)", IDC_BUTTON_SEND, 70, 255, 50, 15, BS_FLAT END |
老罗
2002-11-2