c++语言pop3协议得到的邮件内容怎么解析

c++语言pop3协议得到的邮件内容怎么解析,第1张

邮件内容协议分成很多个段落

首先是日期 Date: RFC 5322 日期格式

然后是收件人发件人段,“To:” 和 "From",以及抄送 "Cc:“ 和 "Bcc“

随后是“Message-ID: “,用于服务器在消息流通中不至于重复发送和存储,识别邮件的唯一性。

最后一段比较关键,格式类似于这样:

MIME-Version: 1.0\r\nContent-type: multipart/alternativeboundary=\"\(boundary)\"\r\n\r\n

意思是表示邮件采用MIME内容编码,可以是多个组成部分,由边界线boundary划分为多个数据区。数据区之间的内容可以是html或者普通文本(参考下列代码)关键是所有文本内容都是用 base64编码重新编排过,所以要用decode_base64解开才能读取。

f !text.isEmpty {    

body += "--\(boundary)\r\nContent-Type: text/plain charset=UTF-8 format=flowed\r\n\r\n\(text)\r\n\r\n"    

}    

if !content.isEmpty {    

body += "--\(boundary)\r\nContent-Type: text/htmlcharset=UTF-8\r\n\r\n\(content)\r\n\r\n"    

}

直接去解析是比较费劲的,因为其实整个编码都是采用了http传输协议的 mime 方式。建议用现成的开源代码去读去,比如CHTTPParser,速度快,效率高,都已经通过几十年检验了的成熟代码。

c++实现的 一行里只能有一个mail地址

#include "stdafx.h"

#include <stdio.h>

#include <iostream>

using namespace std

void main()

{

CString a

char Line[250000] = {0}

FILE *fpFile = NULL

FILE *fpFiletemp = NULL

fpFile = fopen( "C:\\123.htm" , "r+")

if (NULL == fpFile)

{

//error

}

while( fgets( Line, 250000, fpFile ) != NULL)

{

a = Line

a.TrimLeft()

a.TrimRight()

int Posi = 0

Posi=a.Find('@')

if (-1 != Posi)

{

CString website

website = a.Right(strlen(a) - Posi)

int PosiWebsit = 0

PosiWebsit = website.Find("com")

if (-1 != PosiWebsit)

{

CString website1

CString Mailadd

CString Mailadd1

Mailadd =a.Left(Posi)

website1 = website.Left(PosiWebsit)

int PosiMailadd = 0

PosiMailadd = Mailadd.ReverseFind(_T(' '))

if (-1 != PosiMailadd)

{

Mailadd1 = Mailadd.Right(strlen(Mailadd) - PosiMailadd)

}

else

{

Mailadd1 = Mailadd

}

CString com = ("com")

CString mail = Mailadd1 +website1 + com

fpFiletemp = fopen("C:\\temp.txt","w+")

if (NULL == fpFiletemp)

{

//error

}

fputs(mail, fpFiletemp)

fputs("\n", fpFiletemp)

//fpFiletemp = NULL

}

}

}

fclose(fpFile)

fclose(fpFiletemp)

}

域名解析的过程是,根据字符串找到对应的ip地址,例如字符串“www.baidu.com”对应的IP是61.135.169.105。

域名无法解析的意思就是根据你提供的字符串找不到对应的ip地址。

你可以检查一下163的smtp的服务器是不是'smtp.ym.163.com',还是'smtp.163.com'。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/53827.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-26
下一篇2023-02-26

发表评论

登录后才能评论

评论列表(0条)

    保存