Success Send one email to gmail server
[TortoiseGit.git] / src / Utils / HwSMTP.h
blob5d8454f7bb0a0a07d51cb5145aba35c7fd4dc3fb
1 // HwSMTP.h: interface for the CHwSMTP class.
2 //
3 //////////////////////////////////////////////////////////////////////
5 /*******************************************************************
6 ˵Ã÷
7 1¡¢ÕâÊÇÎÒ×Ô¼ºÐ´µÄÒ»¸öÀûÓÃSMTP·þÎñÆ÷·¢ËÍÓʼþµÄÀ࣬¿ÉÒÔʵÏÖ¸½¼þµÄ
8 ·¢ËÍ¡£
9 2¡¢ÔÚ InitInstance() º¯Êýµ÷ÓÃ
10 if (!AfxSocketInit())
12 AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
13 return FALSE;
15 ÔÚ ExitInstance () Öе÷Óà ::WSACleanup ();
16 *******************************************************************/
18 /****************************************************************************************************************
19 Ͷ¸å˵Ã÷£º
20 ****************************************************************************************************************/
21 #define NOTE_SpeedPostMail \
22 _T("\
23 ¡¾Èí¼þÃû³Æ¡¿\r\n\
24 ÎÞÐëSMTP·þÎñÆ÷ÖÐתֱ½Ó½«E-Mailµç×ÓÓʼþ·¢Ë͵½¶Ô·½ÓÊÏä\r\n\
25 ¡¾°æ ±¾¡¿\r\n\
26 1.0.0\r\n\
27 ¡¾²Ù×÷ϵͳ¡¿\r\n\
28 Windows ×ÀÃæϵÁÐ\r\n\
29 ¡¾×÷ Õß¡¿\r\n\
30 лºìΰ ¡¤ chrys ¡¤ chrys@163.com ¡¤ http://www.viction.net\r\n\
31 ¡¾Èí¼þ˵Ã÷¡¿\r\n\
32 ´ó¼ÒÒ»¶¨ÊìϤFoxmailÖеġ°ÌØ¿ìרµÝ¡±£¬ËüÄÜÖ±½Ó½«Óʼþ·¢Ë͵½¶Ô·½µÄÓʼþ·þÎñÆ÷ÖУ¬¶ø²»ÐèÒª¾­¹ýSMTP·þÎñÆ÷ÖÐת£¬\
33 ±¾´úÂ뽫ÏòÄãÆÊÎö¡°ÌØ¿ìרµÝ¡±·¢Ë͵ç×ÓÓʼþµÄ·½·¨¡£´úÂëÖÐÌṩÁËÍø¿¨ÐÅÏ¢»ñÈ¡À࣬¿ÉÒÔ»ñÈ¡±¾»úIPµØÖ·¡¢×ÓÍøÑÚÂë¡¢DNS¡¢\
34 Wins¡¢Íø¿¨MACµØÖ·µÈÏà¹ØÐÅÏ¢£»»¹ÌṩÁËSMTPЭÒé½âÎöÀ࣬¸ÃÀàʵÏÖÁËSMTP¿Í»§¶Ë¹¦ÄܵÄʵÏÖÀ࣬ʵÏÖµç×ÓÓʼþÊÕ·¢£»Base64±àÂëʵÏÖ\
35 ÁË×Ö·û±àÂëµÄ·½·¨¡£\r\n\
36 Äã¿ÉÒÔÈÎÒâÐ޸ĸ´ÖƱ¾´úÂ룬µ«Çë±£ÁôÕâ¶ÎÎÄ×Ö²»ÒªÐ޸ġ£\r\n\
37 Ï£ÍûÎÒÄÜΪÖйúµÄÈí¼þÐÐÒµ¾¡Ò»·Ý±¡Á¦£¡\r\n\
38 ¡¾¿ª·¢ÈÕÆÚ¡¿\r\n\
39 2008-11-23 3:54\r\n")
41 #include <afxsock.h>
43 #if !defined(AFX_HwSMTP_H__633A52B7_1CBE_41D7_BDA3_188D98D692AF__INCLUDED_)
44 #define AFX_HwSMTP_H__633A52B7_1CBE_41D7_BDA3_188D98D692AF__INCLUDED_
46 #if _MSC_VER > 1000
47 #pragma once
48 #endif // _MSC_VER > 1000
50 class CHwSMTP
52 public:
53 CString GetLastErrorText();
54 BOOL SendEmail (
55 LPCTSTR lpszSmtpSrvHost,
56 LPCTSTR lpszUserName,
57 LPCTSTR lpszPasswd,
58 BOOL bMustAuth,
59 LPCTSTR lpszAddrFrom,
60 LPCTSTR lpszAddrTo,
61 LPCTSTR lpszSenderName,
62 LPCTSTR lpszReceiverName,
63 LPCTSTR lpszSubject,
64 LPCTSTR lpszBody,
65 LPCTSTR lpszCharSet, // ×Ö·û¼¯ÀàÐÍ£¬ÀýÈ磺·±ÌåÖÐÎÄÕâÀïÓ¦ÊäÈë"big5"£¬¼òÌåÖÐÎÄʱÊäÈë"gb2312"
66 CStringArray *pStrAryAttach=NULL,
67 CStringArray *pStrAryCC=NULL,
68 UINT nSmtpSrvPort=25
70 CHwSMTP();
71 virtual ~CHwSMTP();
73 private:
74 BOOL SendSubject();
75 CStringArray m_StrAryCC;
76 BOOL SendHead();
77 BOOL auth();
78 BOOL SendEmail();
79 BOOL Send ( LPCTSTR lpszData, ... );
80 BOOL GetResponse( LPCTSTR lpszVerifyCode, int *pnCode=NULL );
81 BOOL m_bConnected;
82 CSocket m_SendSock;
83 CStringArray m_StrAryAttach;
84 CString m_csSmtpSrvHost;
85 CString m_csUserName;
86 CString m_csPasswd;
87 CString m_csAddrFrom;
88 CString m_csAddrTo;
89 CString m_csSenderName;
90 CString m_csReceiverName;
91 CString m_csSubject;
92 CString m_csBody;
93 private:
94 BOOL m_bMustAuth;
95 UINT m_nSmtpSrvPort;
96 CString m_csCharSet;
98 CString m_csLastError;
99 BOOL SendOnAttach(LPCTSTR lpszFileName);
100 BOOL SendAttach();
101 BOOL SendBody();
102 CString m_csMIMEContentType;
103 CString m_csPartBoundary;
104 CString m_csNoMIMEText;
108 BOOL SendEmail (
109 BOOL bViaThreadSend, // FALSE - Ö±½Ó·¢ËÍ£¬ TRUE - ÔÚÏß³ÌÖз¢ËÍ£¬·µ»ØÏ߳̾ä±ú
110 LPCTSTR lpszSmtpSrvHost, // SMTP ·þÎñÆ÷£¬È磺smtp.21cn.com
111 LPCTSTR lpszUserName, // µÇ¼·þÎñÆ÷ÑéÖ¤Éí·ÝµÄÓû§Ãû
112 LPCTSTR lpszPasswd, // µÇ¼·þÎñÆ÷ÑéÖ¤Éí·ÝµÄÃÜÂë
113 BOOL bMustAuth, // SMTP ·þÎñÆ÷ÐèÒªÉí·ÝÑéÖ¤
114 LPCTSTR lpszAddrFrom, // ·¢ËÍÕß E-Mail µØÖ·
115 LPCTSTR lpszAddrTo, // ½ÓÊÕÕßµÄ E-Mail µØÖ·
116 LPCTSTR lpszSenderName, // ·¢ËÍÕßµÄÃû×Ö£¬ÀýÈ磺лºìΰ
117 LPCTSTR lpszReceiverName, // ½ÓÊÕÕßµÄÃû×Ö£¬ÀýÈ磺ÕÅ·É
118 LPCTSTR lpszSubject, // ÓʼþÖ÷Ìâ
119 LPCTSTR lpszBody, // ÓʼþÄÚÈÝ
120 LPCTSTR lpszCharSet=NULL, // ×Ö·û¼¯ÀàÐÍ£¬ÀýÈ磺·±ÌåÖÐÎÄÕâÀïÓ¦ÊäÈë"big5"£¬¼òÌåÖÐÎÄʱÊäÈë"gb2312"
121 CStringArray *pStrAryAttach=NULL, // ¸½¼þÎļþ·¾¶£¬¿ÉÒÔ¶à¸ö
122 CStringArray *pStrAryCC=NULL, // ³­ËÍ E-Mail µØÖ·£¬¿ÉÒÔ¶à¸ö
123 UINT nSmtpSrvPort=25 // SMTP ·þÎñÆ÷µÄ TCP ¶Ë¿ÚºÅ
125 void EndOfSMTP ();
127 #endif // !defined(AFX_HwSMTP_H__633A52B7_1CBE_41D7_BDA3_188D98D692AF__INCLUDED_)