OSDN Git Service

Send Attachment successfully
[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 lpszSenderName,\r
62                 LPCTSTR lpszReceiverName,\r
63                 LPCTSTR lpszSubject,\r
64                 LPCTSTR lpszBody,\r
65                 LPCTSTR lpszCharSet,                                            // ×Ö·û¼¯ÀàÐÍ£¬ÀýÈ磺·±ÌåÖÐÎÄÕâÀïÓ¦ÊäÈë"big5"£¬¼òÌåÖÐÎÄʱÊäÈë"gb2312"\r
66                 CStringArray *pStrAryAttach=NULL,\r
67                 CStringArray *pStrAryCC=NULL,\r
68                 UINT nSmtpSrvPort=25\r
69                 );\r
70         CHwSMTP();\r
71         virtual ~CHwSMTP();\r
72 \r
73 private:\r
74         BOOL SendSubject();\r
75         CStringArray m_StrAryCC;\r
76         BOOL SendHead();\r
77         BOOL auth();\r
78         BOOL SendEmail();\r
79         BOOL Send ( CString &data );\r
80         BOOL SendBuffer(char *buffer,int size=-1);\r
81         BOOL GetResponse( LPCTSTR lpszVerifyCode, int *pnCode=NULL );\r
82         BOOL m_bConnected;\r
83         CSocket m_SendSock;\r
84         CStringArray m_StrAryAttach;\r
85         CString m_csSmtpSrvHost;\r
86         CString m_csUserName;\r
87         CString m_csPasswd;\r
88         CString m_csAddrFrom;\r
89         CString m_csAddrTo;\r
90         CString m_csSenderName;\r
91         CString m_csReceiverName;\r
92         CString m_csSubject;\r
93         CString m_csBody;\r
94 private:\r
95         BOOL m_bMustAuth;\r
96         UINT m_nSmtpSrvPort;\r
97         CString m_csCharSet;\r
98 \r
99         CString m_csLastError;\r
100         BOOL SendOnAttach(LPCTSTR lpszFileName);\r
101         BOOL SendAttach();\r
102         BOOL SendBody();\r
103         CString m_csMIMEContentType;\r
104         CString m_csPartBoundary;\r
105         CString m_csNoMIMEText;\r
106 \r
107 };\r
108 \r
109 BOOL SendEmail (\r
110                                   BOOL bViaThreadSend,                                          // FALSE - Ö±½Ó·¢ËÍ£¬ TRUE - ÔÚÏß³ÌÖз¢ËÍ£¬·µ»ØÏ߳̾ä±ú\r
111                                   LPCTSTR lpszSmtpSrvHost,                                      // SMTP ·þÎñÆ÷£¬È磺smtp.21cn.com\r
112                                   LPCTSTR lpszUserName,                                         // µÇ¼·þÎñÆ÷ÑéÖ¤Éí·ÝµÄÓû§Ãû\r
113                                   LPCTSTR lpszPasswd,                                           // µÇ¼·þÎñÆ÷ÑéÖ¤Éí·ÝµÄÃÜÂë\r
114                                   BOOL bMustAuth,                                                       // SMTP ·þÎñÆ÷ÐèÒªÉí·ÝÑéÖ¤\r
115                                   LPCTSTR lpszAddrFrom,                                         // ·¢ËÍÕß E-Mail µØÖ·\r
116                                   LPCTSTR lpszAddrTo,                                           // ½ÓÊÕÕߵĠE-Mail µØÖ·\r
117                                   LPCTSTR lpszSenderName,                                       // ·¢ËÍÕßµÄÃû×Ö£¬ÀýÈ磺лºìΰ\r
118                                   LPCTSTR lpszReceiverName,                                     // ½ÓÊÕÕßµÄÃû×Ö£¬ÀýÈ磺ÕÅ·É\r
119                                   LPCTSTR lpszSubject,                                          // ÓʼþÖ÷Ìâ\r
120                                   LPCTSTR lpszBody,                                                     // ÓʼþÄÚÈÝ\r
121                                   LPCTSTR lpszCharSet=NULL,                                     // ×Ö·û¼¯ÀàÐÍ£¬ÀýÈ磺·±ÌåÖÐÎÄÕâÀïÓ¦ÊäÈë"big5"£¬¼òÌåÖÐÎÄʱÊäÈë"gb2312"\r
122                                   CStringArray *pStrAryAttach=NULL,                     // ¸½¼þÎļþ·¾¶£¬¿ÉÒÔ¶à¸ö\r
123                                   CStringArray *pStrAryCC=NULL,                         // ³­ËÍ E-Mail µØÖ·£¬¿ÉÒÔ¶à¸ö\r
124                                   UINT nSmtpSrvPort=25                                          // SMTP ·þÎñÆ÷µÄ TCP ¶Ë¿ÚºÅ\r
125                                   );\r
126 void EndOfSMTP ();\r
127 \r
128 #endif // !defined(AFX_HwSMTP_H__633A52B7_1CBE_41D7_BDA3_188D98D692AF__INCLUDED_)\r