上文《利用JMail组件快速构建邮件程序(上)》中介绍了邮件的发送,本文将介绍邮件的接收过程,示例代码运行效果图如下:
三、邮件接收篇
3.1 利用IPOP3接收邮件
接收邮件时用到的接口是IPOP3, 首先连接上邮件服务器,从Messages中得到邮件信息集合,然后就可以通过遍历集合取得每条Message中的具体内容。
请看如下代码:
jmail::IPOP3Ptr pPOP3("JMail.POP3");
// 非必须,设置超时时间为60秒,默认为120秒
pPOP3->Timeout = 60;
// 连接邮件服务器
pPOP3->Connect("webmaster", // 用户帐号
"password", // 密码
"pop3.163.com", // POP3服务器
110); // POP3端口
jmail::IMessagesPtr pMessages;
jmail::IMessagePtr pMessage;
pMessages = pPOP3->Messages; // 取得集合
// 已下载的邮件的实际个数(因为第0个ITEM是未用的,所以-1)
long lCount = pMessages->Count - 1;
// 遍历每封信
for(long i = 1; i <= lCount; i++)
{
pMessage = pMessages->Item[i];
_bstr_t bstrSubject = pMessage->Subject;
_bstr_t bstrFrom = pMessage->From;
_bstr_t bstrBody = pMessage->Body;
printf("(%d)Subject:%s, From:%s, Body:%s\r\n",
i,
(const char*)bstrSubject,
(const char*)bstrFrom,
(const char*)bstrBody);
pMessage.Release();
}
pMessages->Clear(); // 这里的Clear并不是清除邮件服务器上的邮件
pMessages.Release();
// 断开连接
pPOP3->Disconnect();