c++实现发邮件类


CSendMail类,支持多个收件人,支持附件(多个)。
资源截图
代码片段和文件信息
/*
**CSendMail源文件
**实现邮件的发送功能,支持多个用户接收,支持附件
**program by six_beauty
*/

#include 
#include “CSendMail.h“
#include “time.h“
#include 
#include 

const std::string _AppOctStrmContent_encode_chars=“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/“;

//类的实现

CSendMail::CSendMail(void)  
{  
}  


CSendMail::~CSendMail(void)  
{  
clearReceiver();
DeleteAllPath();
}  

//连接
bool CSendMail::Connent()
{
//邮件信息设置判断
if(m_ServerName.empty() || m_UserName.empty() || m_UserPwd.empty())
{
m_logInfo.logInfo(“Connect 失败,请先设置邮件登陆信息!“);
return false;
}

if(!CReateSocket())//建立连接  
{  
m_logInfo.logInfo(“建立连接失败!“);
return false;  
}

if(!Logon())//建立连接  
{  
m_logInfo.logInfo(“登陆失败!“);
return false;  
}
return true;
}


//发送邮件的函数送
bool CSendMail::SendMail(const std::string mail_titleconst std::string send_content)
{
//参数赋值
m_Mailtitle=mail_title;
m_TextBody=send_content;

if(m_SenderName.empty() || m_SenderAddr.empty() || m_Receivers.empty())
{
m_logInfo.logInfo(“[SendMail]邮件参数设置错误,请检查邮件发送设置信息是否完整!“);
return false;
}

if(!SendHead())//发送邮件头  
{  
m_logInfo.logInfo(“发送邮件头失败!“);
return false;  
}  

if(!SendTextBody())//发送邮件文本部分  
{  
return false;  
}  

if(!SendFileBody())//发送附件  
{  
return false;  
}  

if(!SendEnd())//结束邮件,并关闭sock  
{  
return false;  
}  

return true;
}


////////////////////////////////////////////设置邮件信息/////////////////////////////////////////////////////////////////////
void CSendMail::setServerName(const std::string server_name) //smtp服务器地址
{
m_ServerName=server_name;
}

void CSendMail::setUserName(const std::string user_name) //邮箱用户名
{
m_UserName=user_name;
}

void CSendMail::setUserPwd(const std::string user_pwd) //邮箱用户密码
{
m_UserPwd=user_pwd;
}

void CSendMail::setSenderName(const std::string sender_name) //发送者的名字
{
m_SenderName=sender_name;
}

void CSendMail::setSenderAddress(const std::string sender_addr) //发送者的邮箱(mail form:)
{
m_SenderAddr=sender_addr;
}


void CSendMail::addReceiver(const std::string name const std::string address)
{
m_Receivers.insert(RECEIVERS::value_type(name address));
}

void CSendMail::setReceiver(const std::string name const std::string address)
{
m_Receivers.clear();
m_Receivers.insert(RECEIVERS::value_type(name address));
}

void CSendMail::clearReceiver()
{
m_Receivers.clear();
}

void CSendMail::AddFilePath(std::string szFilePath)//添加附件路径  
{  
for(std::list::iterator itrList=m_FilePathList.begin();itrList!=m_FilePathList.end();++itrList)
{
if( itrList->compare(szFilePath) == 0 )
{
//已经存在
return ;
}
}
//还未加入
m_FilePathList.push_back(szFilePath);
}  

void CSendMail::DeleteFilePath(std::string szFilePath)//删除附件路径  
{  
for(std::list::iterator itrList=m_FilePathList.begin();itrList!=m_Fil

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件     1161228  2014-09-19 15:43  CMailSenderDebug2665849504444423352.jpg
     目录           0  2014-09-20 10:49  CMailSender
     目录           0  2014-09-18 15:02  CMailSenderCMailSender
     文件        4115  2014-09-20 10:14  CMailSenderCMailSenderCMailSender.vcxproj
     文件        1251  2014-09-18 15:40  CMailSenderCMailSenderCMailSender.vcxproj.filters
     文件         143  2014-09-18 10:08  CMailSenderCMailSenderCMailSender.vcxproj.user
     文件       11972  2014-09-20 10:43  CMailSenderCMailSenderCSendMail.cpp
     文件        3773  2014-09-20 10:20  CMailSenderCMailSenderCSendMail.h
     目录           0  2014-09-20 10:48  CMailSenderCMailSenderDebug
     文件       45262  2014-09-20 10:48  CMailSenderCMailSenderDebugCL.read.1.tlog
     文件         982  2014-09-20 10:48  CMailSenderCMailSenderDebugCL.write.1.tlog
     文件        2849  2014-09-20 10:15  CMailSenderCMailSenderDebugCMailSender.Build.CppClean.log
     文件         667  2014-09-20 10:42  CMailSenderCMailSenderDebugCMailSender.exe.embed.manifest
     文件         732  2014-09-20 10:42  CMailSenderCMailSenderDebugCMailSender.exe.embed.manifest.res
     文件         381  2014-09-20 10:48  CMailSenderCMailSenderDebugCMailSender.exe.intermediate.manifest
     文件          56  2014-09-20 10:48  CMailSenderCMailSenderDebugCMailSender.lastbuildstate
     文件        2419  2014-09-20 10:48  CMailSenderCMailSenderDebugCMailSender.log
     文件         212  2014-09-20 10:15  CMailSenderCMailSenderDebugCMailSender_manifest.rc
     文件     1018695  2014-09-20 10:44  CMailSenderCMailSenderDebugCSendMail.obj
     文件        1202  2014-09-20 10:48  CMailSenderCMailSenderDebugcl.command.1.tlog
     文件           2  2014-09-20 10:48  CMailSenderCMailSenderDebuglink-cvtres.read.1.tlog
     文件           2  2014-09-20 10:48  CMailSenderCMailSenderDebuglink-cvtres.write.1.tlog
     文件           2  2014-09-20 10:48  CMailSenderCMailSenderDebuglink.2960-cvtres.read.1.tlog
     文件           2  2014-09-20 10:48  CMailSenderCMailSenderDebuglink.2960-cvtres.write.1.tlog
     文件           2  2014-09-20 10:48  CMailSenderCMailSenderDebuglink.2960.read.1.tlog
     文件           2  2014-09-20 10:48  CMailSenderCMailSenderDebuglink.2960.write.1.tlog
     文件           2  2014-09-20 10:48  CMailSenderCMailSenderDebuglink.6484-cvtres.read.1.tlog
     文件           2  2014-09-20 10:48  CMailSenderCMailSenderDebuglink.6484-cvtres.write.1.tlog
     文件           2  2014-09-20 10:48  CMailSenderCMailSenderDebuglink.6484.read.1.tlog
     文件           2  2014-09-20 10:48  CMailSenderCMailSenderDebuglink.6484.write.1.tlog
     文件           2  2014-09-20 10:48  CMailSenderCMailSenderDebuglink.7808-cvtres.read.1.tlog
............此处省略22个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)