SMTPEMailDlg.cpp
上传用户:hebinsheng
上传日期:2015-04-30
资源大小:25k
文件大小:9k
源码类别:

ICQ弱点检测代码

开发平台:

Visual C++

  1. // SMTPEMailDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "SMTPEMail.h"
  5. #include "SMTPEMailDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CAboutDlg dialog used for App About
  13. class CAboutDlg : public CDialog
  14. {
  15. public:
  16. CAboutDlg();
  17. // Dialog Data
  18. //{{AFX_DATA(CAboutDlg)
  19. enum { IDD = IDD_ABOUTBOX };
  20. CString m_strEditHelp;
  21. //}}AFX_DATA
  22. // ClassWizard generated virtual function overrides
  23. //{{AFX_VIRTUAL(CAboutDlg)
  24. protected:
  25. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  26. //}}AFX_VIRTUAL
  27. // Implementation
  28. protected:
  29. //{{AFX_MSG(CAboutDlg)
  30. virtual BOOL OnInitDialog();
  31. //}}AFX_MSG
  32. DECLARE_MESSAGE_MAP()
  33. };
  34. CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
  35. {
  36. //{{AFX_DATA_INIT(CAboutDlg)
  37. m_strEditHelp = _T("");
  38. //}}AFX_DATA_INIT
  39. }
  40. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  41. {
  42. CDialog::DoDataExchange(pDX);
  43. //{{AFX_DATA_MAP(CAboutDlg)
  44. DDX_Text(pDX, IDC_EDIT_HELP, m_strEditHelp);
  45. //}}AFX_DATA_MAP
  46. }
  47. BOOL CAboutDlg::OnInitDialog() 
  48. {
  49. CDialog::OnInitDialog();
  50. // TODO: Add extra initialization here
  51. m_strEditHelp=
  52.     "相关帮助信息:" 
  53. CRLF
  54. CRLF
  55.     "    一、 发送邮件服务器和发信人信箱有密切关系,假如你的信箱为loop@sohu.com,则发送邮件服务器一般为:smtp.sohu.com,当然这也不是绝对的,你可以到你的邮件相关网站查询。"
  56.     CRLF
  57. CRLF
  58. "    二、 发信信箱格式比较灵活,如下三种格式均为合法的:1 在你的E-Mail首尾加小于大于符号:<loomman@sina.com>  2 直接填写你的E-Mail:loomman@sina.com  3 仅仅填写你的E-Mail帐号:loomman"
  59.     CRLF
  60. CRLF
  61.     "    三、 接受信箱可以为多个,中间用分号;隔开,例如:Pookie<pookie@sina.com.cn>;snuggles<snuggles@sohu.com>;<loomman@hotmail.com>  某些信箱前面的部分字符串是收信人名称,例如上面的Pookie可以省略不写,例如下面一行和上面一行是等价的,它们都是可以接受的信箱输入格式。<pookie@sina.com.cn>;<snuggles@sohu.com>;<loomman@hotmail.com>" 
  62.     CRLF
  63. CRLF
  64.     "    四、 邮件主题,当然就是邮件的标题了,你可以随意输入或者从下拉列表中选择自己喜爱的标题。"
  65. CRLF
  66.     CRLF
  67.     "    五、 为了方便大家使用,针对每个空白我都做了一些选项,这样你可以直接从下拉框中选择你需要的,节省时间。"
  68.     CRLF
  69. CRLF
  70.     "    六、 最后不得不提一下,由于当今好多发送邮件服务器都要求身份验证,也就是需要提供的你的信箱密码,鉴于技术问题,这类信箱本程序暂时不支持。"
  71.     CRLF
  72. CRLF
  73. "                                             一剑"
  74. CRLF
  75. "                                         2003年3月30日"
  76.     CRLF
  77.     ;
  78.     UpdateData(FALSE);    // Update the Dialog
  79. return TRUE;  // return TRUE unless you set the focus to a control
  80.               // EXCEPTION: OCX Property Pages should return FALSE
  81. }
  82. BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
  83. //{{AFX_MSG_MAP(CAboutDlg)
  84. //}}AFX_MSG_MAP
  85. END_MESSAGE_MAP()
  86. /////////////////////////////////////////////////////////////////////////////
  87. // CSMTPEMailDlg dialog
  88. CSMTPEMailDlg::CSMTPEMailDlg(CWnd* pParent /*=NULL*/)
  89. : CDialog(CSMTPEMailDlg::IDD, pParent)
  90. {
  91. //{{AFX_DATA_INIT(CSMTPEMailDlg)
  92. m_strComboFrom = _T("");
  93. m_strComboServer = _T("");
  94. m_strComboSubject = _T("");
  95. m_strComboTo = _T("");
  96. m_strEditBody = _T("");
  97. //}}AFX_DATA_INIT
  98. // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  99. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  100. }
  101. void CSMTPEMailDlg::DoDataExchange(CDataExchange* pDX)
  102. {
  103. CDialog::DoDataExchange(pDX);
  104. //{{AFX_DATA_MAP(CSMTPEMailDlg)
  105. DDX_Control(pDX, IDC_COMBO_TO, m_ctrlComboTo);
  106. DDX_Control(pDX, IDC_COMBO_SUBJECT, m_ctrlComboSubject);
  107. DDX_Control(pDX, IDC_COMBO_SERVER, m_ctrlComboServer);
  108. DDX_Control(pDX, IDC_COMBO_FROM, m_ctrlComboFrom);
  109. DDX_CBString(pDX, IDC_COMBO_FROM, m_strComboFrom);
  110. DDX_CBString(pDX, IDC_COMBO_SERVER, m_strComboServer);
  111. DDX_CBString(pDX, IDC_COMBO_SUBJECT, m_strComboSubject);
  112. DDX_CBString(pDX, IDC_COMBO_TO, m_strComboTo);
  113. DDX_Text(pDX, IDC_EDIT_BODY, m_strEditBody);
  114. //}}AFX_DATA_MAP
  115. }
  116. BEGIN_MESSAGE_MAP(CSMTPEMailDlg, CDialog)
  117. //{{AFX_MSG_MAP(CSMTPEMailDlg)
  118. ON_WM_SYSCOMMAND()
  119. ON_WM_PAINT()
  120. ON_WM_QUERYDRAGICON()
  121. ON_BN_CLICKED(IDC_ABOUT, OnAbout)
  122. ON_BN_CLICKED(IDSEND, OnSend)
  123. //}}AFX_MSG_MAP
  124. END_MESSAGE_MAP()
  125. /////////////////////////////////////////////////////////////////////////////
  126. // CSMTPEMailDlg message handlers
  127. BOOL CSMTPEMailDlg::OnInitDialog()
  128. {
  129. CDialog::OnInitDialog();
  130. // Add "About..." menu item to system menu.
  131. // IDM_ABOUTBOX must be in the system command range.
  132. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
  133. ASSERT(IDM_ABOUTBOX < 0xF000);
  134. CMenu* pSysMenu = GetSystemMenu(FALSE);
  135. if (pSysMenu != NULL)
  136. {
  137. CString strAboutMenu;
  138. strAboutMenu.LoadString(IDS_ABOUTBOX);
  139. if (!strAboutMenu.IsEmpty())
  140. {
  141. pSysMenu->AppendMenu(MF_SEPARATOR);
  142. pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  143. }
  144. }
  145. // Set the icon for this dialog.  The framework does this automatically
  146. //  when the application's main window is not a dialog
  147. SetIcon(m_hIcon, TRUE); // Set big icon
  148. SetIcon(m_hIcon, FALSE); // Set small icon
  149. // TODO: Add extra initialization here
  150. m_ctrlComboServer.InsertString(0,"mail.czvc.com");
  151. m_ctrlComboServer.InsertString(1,"smtp.sina.com.cn");
  152. m_ctrlComboServer.InsertString(2,"smtp.163.com");
  153. m_ctrlComboServer.InsertString(3,"smtp.sohu.com");
  154. m_ctrlComboServer.InsertString(4,"smtp.163.net");
  155. m_ctrlComboServer.InsertString(5,"smtp.263.net");
  156. m_ctrlComboServer.InsertString(6,"smtp.yahoo.com.cn");
  157. m_ctrlComboServer.InsertString(7,"smtp.21cn.com");
  158. m_ctrlComboServer.InsertString(8,"mail.fm365.com");
  159. m_ctrlComboServer.InsertString(9,"smtp.elong.com");
  160. m_ctrlComboServer.InsertString(10,"smtp.etang.com");
  161. m_ctrlComboServer.InsertString(11,"smtp.yahoo.com");
  162. //发送人信箱
  163.     m_ctrlComboFrom.InsertString(0,"<info@czvc.com>");
  164.     m_ctrlComboFrom.InsertString(1,"<loomman@sina.com>");
  165.     
  166. //接受人信箱,当然您可以在此添加更多的接受信箱:)
  167. m_ctrlComboTo.InsertString(0,"<info@czvc.com>;<loomman@hotmail.com>");
  168. m_ctrlComboSubject.InsertString(0,"嗨,你好!");
  169. m_ctrlComboSubject.InsertString(1,"好久不见,近来可好?");
  170. m_ctrlComboSubject.InsertString(2,"久违了,老兄!");
  171. m_ctrlComboSubject.InsertString(3,"新年快乐!");
  172.     m_ctrlComboSubject.InsertString(4,"小妹妹你好!");
  173.     m_ctrlComboSubject.InsertString(5,"朋友,你现在还好吗?");
  174.     m_ctrlComboSubject.InsertString(6,"你好,可以和你做个朋友吗?");
  175.     m_ctrlComboSubject.InsertString(7,"我爱你!");
  176.     m_ctrlComboSubject.InsertString(8,"亲爱的,我想你!");
  177.     m_ctrlComboSubject.InsertString(9,"可以认识你吗?");
  178.     m_ctrlComboSubject.InsertString(10,"Are you girl?");
  179.     m_ctrlComboSubject.InsertString(11,"Hi, nice to see you!");
  180. return TRUE;  // return TRUE  unless you set the focus to a control
  181. }
  182. void CSMTPEMailDlg::OnSysCommand(UINT nID, LPARAM lParam)
  183. {
  184. if ((nID & 0xFFF0) == IDM_ABOUTBOX)
  185. {
  186. CAboutDlg dlgAbout;
  187. dlgAbout.DoModal();
  188. }
  189. else
  190. {
  191. CDialog::OnSysCommand(nID, lParam);
  192. }
  193. }
  194. // If you add a minimize button to your dialog, you will need the code below
  195. //  to draw the icon.  For MFC applications using the document/view model,
  196. //  this is automatically done for you by the framework.
  197. void CSMTPEMailDlg::OnPaint() 
  198. {
  199. if (IsIconic())
  200. {
  201. CPaintDC dc(this); // device context for painting
  202. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  203. // Center icon in client rectangle
  204. int cxIcon = GetSystemMetrics(SM_CXICON);
  205. int cyIcon = GetSystemMetrics(SM_CYICON);
  206. CRect rect;
  207. GetClientRect(&rect);
  208. int x = (rect.Width() - cxIcon + 1) / 2;
  209. int y = (rect.Height() - cyIcon + 1) / 2;
  210. // Draw the icon
  211. dc.DrawIcon(x, y, m_hIcon);
  212. }
  213. else
  214. {
  215. CDialog::OnPaint();
  216. }
  217. }
  218. // The system calls this to obtain the cursor to display while the user drags
  219. //  the minimized window.
  220. HCURSOR CSMTPEMailDlg::OnQueryDragIcon()
  221. {
  222. return (HCURSOR) m_hIcon;
  223. }
  224. void CSMTPEMailDlg::OnOK() 
  225. {
  226. }
  227. void CSMTPEMailDlg::OnAbout() 
  228. {
  229. CAboutDlg dlgAbout;
  230. dlgAbout.DoModal();
  231. }
  232. void CSMTPEMailDlg::OnSend() 
  233. {
  234. UpdateData( TRUE );
  235. CSMTP smtp( m_strComboServer );
  236. CMailMessage msg;
  237. msg.m_sFrom = m_strComboFrom;
  238. msg.AddMultipleRecipients( m_strComboTo );
  239. msg.m_sSubject = m_strComboSubject;
  240. msg.m_sBody = m_strEditBody;
  241. if( !smtp.Connect() )
  242. {
  243. AfxMessageBox( smtp.GetLastError() );
  244. return;
  245. }
  246. if( !smtp.SendMessage( &msg ) )
  247. {
  248. AfxMessageBox( smtp.GetLastError() );
  249. return;
  250. }
  251. if( !smtp.Disconnect() )
  252. {
  253. AfxMessageBox( smtp.GetLastError() );
  254. return;
  255. }
  256. AfxMessageBox( _T( "邮件发送成功!") );
  257. //以下几行代码可选
  258. //m_strComboTo = "";
  259. //m_strComboSubject = "";
  260. //m_strEditBody = "";
  261. //UpdateData( FALSE );
  262. //m_ctrlComboTo.SetFocus();
  263. }