VC++实现发送邮件功能

邮件系统通常采用SMTP作为发送协议,POP3作为接受协议(具体内容参考RFC821、RFC1225)。无论是发邮件,还是收邮件都必须要与邮件服务器连接,再通过邮件信息结构发送邮件。VC里提供了三个类CPop3(连接接受邮件服务器)、CSMTP(连接发送邮件服务器)、CMailMessage(邮件信息结构)

下面是个例子,你参考一下!

//发送邮件
void    CTestDlg::OnBtnSendMail()  
{
//更新数据
UpdateData(    TRUE    );
//建立CSMTP对象
CSMTP    Smtp(m_SMTPServer    );
//新建CMailMessage对象,并初始化
CMailMessage    msg;
msg.m_sFrom    =    m_From;
msg.AddMultipleRecipients(    m_To    );
msg.m_sSubject    =    m_MailSubject;
msg.m_sBody    =    m_MailBody;
//连接SMTP服务器
if(    !Smtp.Connect()    )
{
AfxMessageBox(    Smtp.GetLastError()    );
return;
}
//发送邮件
if(    !Smtp.SendMessage(    &msg    )    )
{
AfxMessageBox(    Smtp.GetLastError()    );
return;
}
//断开连接
if(    !Smtp.Disconnect()    )
{
AfxMessageBox(    Smtp.GetLastError()    );
return;
}
AfxMessageBox(    _T(    "成功断开与服务器的连接! "    )    );
}
//接收邮件
void    CTestDlg::OnBtnReceiveMail()  
{
//更新数据
UpdateData(    TRUE    );
//新建CPOP3对象
CPOP3    pop3(    m_Pop3Server    );
pop3.SetUserProperties(m_UserName,m_Password);
//连接POP3服务器
if    (!pop3.Connect())
{
AfxMessageBox(    pop3.GetLastError()    );
return;
}
//收取邮件
CMailMessage    msg;
if    (!pop3.GetMessage(1,&msg))
{
AfxMessageBox(    pop3.GetLastError()    );
return;
}
//显示邮件
m_MailBody=msg.m_sBody;
m_MailSubject=msg.m_sSubject;
m_From=msg.m_sFrom;
m_To= " ";
for    (int    a=0;    a <msg.GetNumRecipients();    a++)
{
CString    sEmail;
CString    sFriendly;
msg.GetRecipient(sEmail,sFriendly,a);
m_To+=sEmail;
m_To+= "    ";
}
m_To.TrimRight();
//断开连接
if(    !pop3.Disconnect()    )
{
AfxMessageBox(    pop3.GetLastError()    );
return;
}
AfxMessageBox(    _T(    "成功断开与服务器的连接! "    )    );
UpdateData(FALSE);
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值