使用libspopc函数库实现POP访问

#include <libspopc.h>#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct _emaillist emaillist;struct _emaillist {// 定义结构体,用于保存邮件信息 int size; int sig; char head[500]; char msg[65536];};int mail(){ popsession* mysession;// 定义libspopc会话 int error; char servername[200];// 用于保存pop3服务器地址 char user[20];// 用于保存用于名 char pass[20];// 用于保存密码 int last, total, i, j; puts("请输入pop3服务器地址:"); scanf("%s", servername); puts("请输入用户名:"); scanf("%s", user); puts("请输入密码:"); scanf("%s", pass); libspopc_init();// 初始化libspopc error = popbegin(servername,user,pass,&mysession);<span style="white-space:pre"></span>// 打开pop连接 if (error != 0) {puts("无法打开邮箱");return 1; } last = mysession -> last;<span style="white-space:pre"></span>// 获取最后一个邮件的编码 total = mysession -> num;<span style="white-space:pre"></span>// 获取邮件总数 emaillist *els = malloc(sizeof(emaillist) * total);// 动态分配内存存放邮件内容 for(i = 1; i <= last; i++){(els + i – 1) -> size = popmsgsize(mysession,i) ;<span style="white-space:pre"></span>// 获取邮件大小(els + i – 1) -> sig = popmsguid(mysession,i);<span style="white-space:pre"></span>// 获取邮件编号strncpy((els + i – 1) -> head, popgethead(mysession,i), 499);<span style="white-space:pre"></span>// 获取邮件标题strncpy((els + i – 1) -> msg, popgetmsg(mysession,i), 65535);<span style="white-space:pre"></span>// 获取邮件内容*((els + i – 1) -> head) +500) = '\0';*((els + i – 1) -> msg) + 65536) = '\0';popdelmsg(mysession,i);<span style="white-space:pre"></span>// 在邮箱中删除邮件 } popend(mysession);<span style="white-space:pre"></span>// 结束会话 libspopc_clean();<span style="white-space:pre"></span>// 终止libspopc for (i = 0; i <= last – 1; i++) {printf("%d:%30s %dB", (els + i) -> sig,(els + i) -> head,(int) (els + i) -> size / 1024 );<span style="white-space:pre"></span>// 显示邮件概要信息 while(1) {puts("请输入要查看邮件的编码,,输入“-1”退出");scanf("%d", &j);if (j == -1)break;else {for(i = 0; i <= last – 1; i++) {if ((els + i) -> sig == j);puts((els + i) -> msg);<span style="white-space:pre"></span>// 输出邮件内容}} } free(els); return 0;}

才能做到人在旅途,感悟人生,享受人生。

使用libspopc函数库实现POP访问

相关文章:

你感兴趣的文章:

标签云: