欢迎随意转载:不过请注明出处 前言: 在网上找了很长时间如何发电子邮件的教程,发现大多数都是不能用的 很黑心,要不就是有问题的, 烦人,,,所以决定自己写一个C+WinSock+SMTP, 不敢藏私,拿出来与大家分享 先对协议和端口进行一下说明 25 端口:25 端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。 109、110 端口:109 端口是为POP2(Post Office Protocol Version 2,邮局协议2)服务开放的,110 端口是为POP3(邮局协议3)服务开放的,POP2、POP3 都是主要用于接收邮件的。 实现原理: 假设由发件人********************发到 ****************邮箱, 发送过程如下: 1.连接 smtp 服务器, smtp.126.com 主机返回: 220 126.com Anti-spam GT for Coremail System (126com[20101010]) 32 32 30 20 31 32 36 2E 63 6F 6D 20 41 6E 74 69 2D 73 70 61 6D 20 47 54 20 66 6F 72 20 43 6F 72 65 6D 61 69 6C 20 53 79 73 74 65 6D 20 28 31 32 36 63 6F 6D 5B 32 30 31 30 31 30 31 30 5D 29 0D 0A 2.查询支持什么指令(注意:有的教程上写的是 HELO 其实是不对的。。。。。。) 发送命令:************************\r\n(发送的命令要以"\r\n"作为结束标识符) 返回数据: 250-mail 250-PIPELINING 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UroXVjYUCa0xDr UUUUj 250-STARTTLS 250 8BITMIME 32 35 30 2D 6D 61 69 6C 0D 0A 32 35 30 2D 50 49 50 45 4C 49 4E 49 4E 47 0D 0A 32 35 30 2D 41 55 54 48 20 4C 4F 47 49 4E 20 50 4C 41 49 4E 0D 0A 32 35 30 2D 41 55 54 48 3D 4C 4F 47 49 4E 20 50 4C 41 49 4E 0D 0A 32 35 30 2D 63 6F 72 65 6D 61 69 6C 20 31 55 78 72 32 78 4B 6A 37 6B 47 30 78 6B 49 31 37 78 47 72 55 37 49 30 73 38 46 59 32 55 33 55 6A 38 43 7A 32 38 78 31 55 55 55 55 55 37 49 63 32 49 30 59 32 55 72 6F 58 56 6A 59 55 43 61 30 78 44 72 55 55 55 55 ...