jmail:VC++代码实现
来源:互联网 发布:linux gdb调试视频 编辑:程序博客网 时间:2024/05/18 22:10
#include "StdAfx.h"
#include "Threadfun.h"
/************************************************************************/
/* 发送邮件线程:发送邮件 */
/************************************************************************/
UINT WorkForce(LPVOID lpParameter)
{
if(pReceiveThreadH)
{
WaitForSingleObject(pReceiveThreadH->m_hThread,INFINITE);
}
CString m_EmailAddr =_T("发件人邮箱地址");
CString m_strpwd = =_T("发件人邮箱密码");
CString MailAddr = m_EmailAddr;//发件邮件服务器
///////////////////////////////////////////////////////////////////
//发件邮件服务器:字符串拼接开始
//连接字符串, CString strstr;
strstr = _T(":");
strstr += m_strpwd;
strstr += _T("@");
MailAddr .Replace(_T("@"), strstr);
MailAddr .Replace(_T("@"), _T("@smtp."));
//字符串拼接结束
//////////////////////////////////////////////////////////////////
//邮件内容字符串
CString FromName =_T("发件人姓名");
CString strTitle =_T("邮件主题");
CString strRstr = _T("发送给"); //插入数据库字符串;
//邮箱地址。
CString strAddr=_T("收件人邮箱地址");
//邮箱内容。
CString strContent=_T("邮件内容");
//判断发送是否成功.
bool isSuccess = true;
try
{
jmail::IMessagePtr pmessage("JMail.message");
pmessage->AddRecipient ((_bstr_t)strAddr,"",""); //收件人邮箱地址,收件人姓名为空
pmessage->From =(_bstr_t)MailAddr; //发件人邮箱地址
pmessage->FromName =(_bstr_t)FromName; //发件人姓名
pmessage->Subject=(_bstr_t)strTitle; //邮件主题
pmessage->Body =(_bstr_t)strContent; //邮件正文
pmessage->Priority =3; //邮件优先级
pmessage->Charset ="GB2312"; //字符集
//发送邮件
pmessage->Send(_bstr_t(m_EmailAddr),VARIANT_FALSE);
pmessage.Release ();
}
catch(_com_error e)
{
//设置isSuccess发送失败.
isSuccess = false;
}
}
/************************************************************************/
/* 接收邮件线程:接收邮件 */
/************************************************************************/
UINT WorkForceRecive(LPVOID lpParameter1)
{
if(pSendThreadH)
{
WaitForSingleObject(pSendThreadH->m_hThread,INFINITE);
}
PRECEIVEPARA receivepara = (PRECEIVEPARA)lpParameter1;
//打开连接。
jmail::IPOP3Ptr pPOP3("JMail.POP3");
pPOP3->Timeout = 30; // 设置连接服务器超时限制 30S
try
{
pPOP3->Connect( (LPCTSTR)receivepara->mailname, (LPCTSTR)receivepara->mailpswd,
(LPCTSTR)receivepara->mailserver, 110); // 连接邮件服务器,110为pop3默认端口号
}
catch (_com_error e)
{
//AfxMessageBox(_T("连接失败!请检查邮箱地址和密码是否正确!"));
return 0;
}
m_Pop3 = pPOP3;
//读取邮箱中的信件
jmail::IMessagesPtr pMessages;
pMessages = m_Pop3->Messages;
// 已下载的邮件的实际个数(因为第0个ITEM是未用的,所以-1)
long lCount = pMessages->Count - 1;
long undealID=1;//未做回复处理的邮件的ID
//如果邮箱是空的就返回。
if(lCount == 0)
{
//AfxMessageBox(_T("信箱为空"));
return 0;
}
else
{
jmail::IMessagePtr pMessage;
// 遍历每封信,获取和最后一条记录的UID和发信人值相同的信的i值,即最后处理的那一封信
if(lastUIDinThread!=_T("")&&lastSenderinThread!=_T(""))
{
for(long i = 1; i <= lCount; i++)
{
try
{
pMessage = pMessages->Item[i];
}
catch (_com_error e)
{
i=i-1;
continue;
}
//信件的具体信息
_bstr_t bstrFrom = pMessage->From;//发信人
CString UID=(TCHAR*)m_Pop3->GetMessageUID(i);//收信的UID
_bstr_t bstrSubject = pMessage->Subject;//发信主题
_bstr_t bstrBody = pMessage->Body;//发信内容
COleDateTime oleDate = pMessage->Date; //收信时间
pMessage.Release();
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////
//断开POP3连接。
try
{
m_Pop3->Disconnect();
}
catch(_com_error e)
{
//AfxMessageBox(_T("断开连接失败!请确认已连接!"));
return 0;
}
}
- jmail:VC++代码实现
- VC下使用JMail实现邮件收发
- VC下使用JMail实现邮件收发
- VC下使用JMail实现邮件收发
- JMail发送邮件代码(Jmail.message)
- Jmail 发信代码!
- JMail发送邮件代码
- JMail发送邮件代码
- Jmail读取邮件代码
- VC++用JMail发邮件
- Jmail实现邮件发送
- jmail发邮件的代码
- VC中JMail组件的应用(上)
- VC中JMail组件的应用(下)
- VC中JMail组件的应用(上)
- jMail实现电子 邮件发送
- Jmail组件实现电子邮件收发
- VC++的malloc实现代码
- Android游戏框架AndEngine使用入门
- 论文技巧
- VC++之图形设备接口之CDC类之画弧函数及相关结构
- 关于自动关机的程序设计(MFC/VC)
- vc中控件字体的设置
- jmail:VC++代码实现
- android菜单学习笔记
- VC下使用JMail实现邮件收发
- Activity间通过广播形式动态进行数据传输
- 文本文件编码方式判断
- 闲暇之作
- android多线程讲解(转载)
- ClientToScreen( )与ScreenToClient( )的区别
- android button 按下及抬起事件监听器设置