OSDN Git Service

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