您的位置:首页 > 编程语言 > C语言/C++

VC++实现发送邮件功能

2011-12-03 22:22 477 查看
邮件系统通常采用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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: