使用libcurl进行邮件的下载与转发

一.邮件下载:

1)相关函数

CURL *curl;

CURLcode res = CURLE_OK;

curl = curl_easy_init();

curl_easy_setopt(curl,CURLOPT_USERNAME,"USER"); //有的邮件服务器不能加域名比如,test@qq.com,qq.com不能要

curl_easy_setopt(curl,CURLOPT_PASSWORD,"123456");

curl_easy_setopt(curl,CURLOPT_URL,"pop3://test.com:110/1"); //110是默认端口,如果使用其他端口要跟着变,后面的1代表第几份邮件

curl_easy_setopt(curl,CURLOPT_WRITEDATA,指针); //指针,指示写入数据需要存储的地方,如文件或队列

curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,,write_data); //回调函数,上面的指针就是给其传参数的作用,回调函数格式 static size_t write_data(coid *ptr,size_t size, size_t nmemb, void *stream); stream就是上面的指针,ptr指向已经接受的数据,中间两个相乘代表字节数

res = curl_easy_perform(curl);

if(res!=CURLE_OK)

fprintf(stderr,"%s",curl_easy_strerror(res));

curl_easy_cleanup(curl);


二.发送邮件

1)struct  curl_slist *recipients=NULL;

curl = curl_easy_init();

curl_easy_setopt(curl,CURLOPT_URL,"smtp://to.com:25/from.com");  //默认端口25,可不写,其他端口必须写

curl_easy_setopt(curl,CURLOPT_MAIL_FROM,"user@from.com");

recipients = curl_slist_append(recipients,"user@to.com");

recipients = curl_slist_append(recipients,"CCuser@to.com"); //抄送

curl_easy_setopt(curl,CURLOPT_MAIL_RCPT,recipients);

curl_easy_setopt(curl,CURLOPT_READDATA,指针); //指针,指示写入数据需要存储的地方,如文件或队列

curl_easy_setopt(curl,CURLOPT_READFUNCTION,read_data);

curl_easy_setopt(curl,CURLOPT_UPLOAD,1L); // TRUE to prepare for an upload 设置非零值

res = curl_easy_perform(curl);

if(res!=CURLE_OK)

fprintf(stderr,"%s",curl_easy_strerror(res));

curl_easy_cleanup(curl);




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值