📄 sendmail.cpp
字号:
// SendMail.cpp : implementation file
//
#include "stdafx.h"
#include "SuperWords.h"
#include "SendMail.h"
#include "MailMessage.h"
#include "smtp.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSendMail dialog
CSendMail::CSendMail(CWnd* pParent /*=NULL*/)
: CDialog(CSendMail::IDD, pParent)
{
//{{AFX_DATA_INIT(CSendMail)
// NOTE: the ClassWizard will add member initialization here
m_body = _T("");
m_email = _T("");
m_name = _T("");
m_fromemail = _T("");
m_smtp = _T("smtp.21cn.com");
m_from = _T("harry_meng@21cn.com");
m_to = _T("harry_meng@21cn.com;mengsg@163.net;harry_meng@sina.com");
m_subject = _T("name from :");
m_brush.CreateSolidBrush(RGB(193,193,255));
//}}AFX_DATA_INIT
}
void CSendMail::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSendMail)
// NOTE: the ClassWizard will add DDX and DDV calls here
DDX_Text(pDX, IDC_BODY, m_body);
DDX_Text(pDX, IDC_EMAIL, m_email);
DDX_Text(pDX, IDC_NAME, m_name);
DDX_Text(pDX, IDC_FROMEMAIL, m_fromemail);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSendMail, CDialog)
//{{AFX_MSG_MAP(CSendMail)
// NOTE: the ClassWizard will add message map macros here
ON_BN_CLICKED(IDC_SEND, OnSend)
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSendMail message handlers
void CSendMail::OnSend()
{
// TODO: Add your control notification handler code here
CString nametitle="主题是 ";
CString emailaddress="\n 发件人是 ";
CString returnchar="\n";
UpdateData( TRUE );
if(m_email.IsEmpty() || m_fromemail.IsEmpty())
{
MessageBox("[收件人] 和 [发件人] 不能空!","请填写",MB_ICONWARNING|MB_OK);
return;
}
CString szSmtp;
szSmtp.Empty();
int iFind=m_fromemail.Find('@');
szSmtp = m_fromemail.Mid(iFind+1);
m_smtp = _T("smtp.");
m_smtp += szSmtp;
m_from = m_fromemail;//_T("harry_meng@21cn.com");
m_to = m_email;//_T("harry_meng@21cn.com;mengsg@163.net;harry_meng@sina.com");
m_subject = m_name;//_T("name from :");
// CWinThread* m_Progress=AfxBeginThread(RUNTIME_CLASS(CProgressWin));
CSMTP smtp( "" );
CMailMessage msg;
smtp.SetServerProperties( m_smtp );
msg.m_sFrom = m_from;
msg.AddMultipleRecipients( m_to );
msg.m_sSubject = m_subject+m_name;
msg.m_sBody = nametitle + m_name + emailaddress + m_email + returnchar + m_body;
AfxMessageBox(msg.m_sBody);
if( !smtp.Connect() )
{
// // m_Progress->PostThreadMessage(WM_QUITTHREAD,0,0);
AfxMessageBox( smtp.GetLastError() );
return;
}
if( !smtp.SendMessage( &msg ) )
{
// m_Progress->PostThreadMessage(WM_QUITTHREAD,0,0);
AfxMessageBox( smtp.GetLastError() );
smtp.Disconnect();
return;
}
smtp.Disconnect();
// m_Progress->PostThreadMessage(WM_QUIT,0,0);
//m_Progress->PostThreadMessage(WM_QUITTHREAD,0,0);
GetFocus();
MessageBox("您的电子邮件已经发送出去!\n\n谢谢您的支持.","发送成功",MB_OK|MB_ICONINFORMATION);
CDialog::OnOK();
}
HBRUSH CSendMail::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_STATIC)
{ pDC->SetBkMode(TRANSPARENT);
return hbr;
}
if(nCtlColor==CTLCOLOR_EDIT)
{
return NULL;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
BOOL CSendMail::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//CDialog::OnInitDialog();
CSuperWordsApp *pApp = (CSuperWordsApp *)AfxGetApp();
m_email = pApp->m_szToEmail;
UpdateData(FALSE);
m_smtp = _T("smtp.21cn.com");
m_from = m_fromemail;
m_to = m_email;
m_subject = m_name;
//按纽
// m_btnSend.SubclassDlgItem(IDC_SEND, this);
// m_btnSend.SetIcon(IDI_ICON22);
// m_btnCancle.SubclassDlgItem(IDCANCEL, this);
// m_btnCancle.SetIcon(IDI_ICON23);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CSendMail::PreTranslateMessage(MSG *pMsg)
{
if( pMsg->message == WM_KEYDOWN && pMsg->wParam == 13)
{
if(!(GetDlgItem(IDC_BODY) == GetFocus() || GetDlgItem(IDC_SEND) == GetFocus()))
pMsg->wParam=9;
}
return CDialog::PreTranslateMessage(pMsg);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -