c编程邮件传输
来源:互联网 发布:毛概网络课程答案 编辑:程序博客网 时间:2024/05/18 18:17
发送邮件需要使用STMP协议,注意SMTP协议的每条指令都是以“\r\n”作为结束标志,所以必须在每一条要发送的指令后加上“\r\n”。
我们先以发送本地的IP地址为例。
要获得本地地址信息,要用到两个函数,【gethostname】和【gethostbyname】,前者获得本机的名称,
是个字符串,后者根据其获得本机的地址信息,返回值是一个指向hostent结构的指针,这个截个图具体定义:
struct hostent
{
char FAR * h_name;
char FAR *FAR *h_aliases;
short h_addrtype;
short h_length;
char FAR *FAR * h_addr__list;//IP地址
}
我们获得的IP信息就在h_addr_list中,但一台机器可能有很多的IP地址,我们要将其记录下来,使用一个循环,,并且
调用【inet_ntoa】函数将其转化成我们习惯的点分字符串格式的IP地址,如192.168.1.1.这样就获得了IP。
下面我们根据STMP协议的规定,发送邮件,以qq邮箱作为发送邮箱,
第一,配置参数。必须和服务器简历链接,先得到服务器的地址,调用【gethostbyname】,将smtp.qq.com作为参数,保存返回的hostent结构的地址
,用他的h_addr_list[0]来初始化sockaddr_in结构的sin_addr.S_un.S_addr成员,端口写成25,这是邮件服务标准端口。
第二,服务器链接。配置好参数后进行【connect】链接,链接上后就使用SMTP来通信了,要注意SMTP协议一发一收的原则。
链接上腾讯的邮箱服务器后,先接受服务器的反馈信息,然后就是发送邮件用户名来验证,(注意你必须要有一个自己的邮箱)。首先发送“AUTH LOGIN\r\n",接收后发送用户名(机邮箱地址@前面的部分),在发送密码,此时服务器返回是否验证成功的信息,若成功则返回代码为235的信息,否则返回535,注意有可能由于服务器的繁忙导致验证失败,那就要从头链接,还有就是用户名和密码要采用base64编码。
第三,邮件发送。邮件发送也有一定的格式,首先发件人,“发件人:<用户名:@qq.co>\r\n",(其实也可以都不写)。其次收件人”RCPT TO: <目的邮箱>",
要发送给几个人,就发送几个"TCPT TO:<目的邮箱>"(这个是必写的不然会找不到目的邮箱),然后“DATA\r\n" 表示要发送具体数据了,数据格式为:邮件头+邮件体
- c编程邮件传输
- 邮件传输过程
- Postfix 邮件传输代理服务器
- 邮件传输协议总结
- 邮件传输协议简介
- 配置邮件传输规则
- 简单邮件传输协议
- JavaMail邮件传输
- 邮件传输协议
- Java实现邮件传输
- 计算机网络 | 邮件传输协议
- C/C++网络编程大文件循环传输
- Linux C——网络编程传输文件的实验
- RFC821_简单邮件传输协议
- RFC821_简单邮件传输协议
- SMTP:简单邮件传输协议
- 简单邮件传输协议 SMTP
- 简单邮件传输协议 SMTP .
- Leetcode: Search in Rotated Sorted Array
- UVa 331 Mapping the Swaps (DFS)
- Linux下pdf读取乱码
- Leetcode: Search in Rotated Sorted Array II
- Web 服务学习资源
- c编程邮件传输
- 黑马程序员--整理一下一些有用的类
- 阶段总结
- Leetcode: Combinations
- OSCache
- Node.js, 使用 Buffers 操作,编码、解码,二进制数据。
- 写给换工作和找工作的同学
- 上海市二○○九年(上半年)会计从业资格统一考试
- Linux内核中链表实现