OSDN Git Service

ProgressDlg, Pull: Took m_GitStatus into account for detecting problems.
[tortoisegit/TortoiseGitJp.git] / src / Utils / HwSMTP.cpp
index ec51322..3228eb8 100644 (file)
@@ -97,6 +97,8 @@ CHwSMTP::CHwSMTP () :
        m_csPartBoundary = _T( "WC_MAIL_PaRt_BoUnDaRy_05151998" );\r
        m_csNoMIMEText = _T( "This is a multi-part message in MIME format." );\r
        //m_csCharSet = _T("\r\n\tcharset=\"iso-8859-1\"\r\n");\r
+\r
+       AfxSocketInit();\r
 }\r
 \r
 CHwSMTP::~CHwSMTP()\r
@@ -183,10 +185,11 @@ BOOL CHwSMTP::SendSpeedEmail
        std::map<CString,std::vector<CString>>::iterator itr1  =  Address.begin();\r
     for(  ;  itr1  !=  Address.end();  ++itr1 )\r
     {\r
-        PDNS_RECORD pDnsRecord; \r
-\r
+        PDNS_RECORD pDnsRecord;\r
+               PDNS_RECORD pNext;\r
+               \r
                DnsQuery(itr1->first ,\r
-                                   DNS_TYPE_MX,DNS_QUERY_BYPASS_CACHE,\r
+                                   DNS_TYPE_MX,DNS_QUERY_STANDARD,\r
                                            NULL,                   //Contains DNS server IP address.\r
                         &pDnsRecord,                //Resource record that contains the response.\r
                         NULL\r
@@ -202,9 +205,17 @@ BOOL CHwSMTP::SendSpeedEmail
                if(to.IsEmpty())\r
                        continue;\r
 \r
-               if(!SendEmail(pDnsRecord->Data.MX.pNameExchange,NULL,NULL,false,\r
+               pNext=pDnsRecord;\r
+               while(pNext)\r
+               {\r
+               \r
+                       if(SendEmail(pNext->Data.MX.pNameExchange,NULL,NULL,false,\r
                                lpszAddrFrom,to,lpszSubject,lpszBody,lpszCharSet,pStrAryAttach,pStrAryCC,\r
                                25,pSend,lpszAddrTo))\r
+                               break;\r
+                       pNext=pNext->pNext;\r
+               }\r
+               if(pNext == NULL)\r
                        ret = false;\r
 \r
                //SendEmail(itr1.first,NULL,NULL,false,lpszAddrFrom,,lpszFromname);\r
@@ -284,6 +295,7 @@ BOOL CHwSMTP::SendEmail (
        m_SendSock.Close();\r
        if ( !m_SendSock.Create () )\r
        {\r
+               int nResult = GetLastError();\r
                m_csLastError.Format ( _T("Create socket failed!") );\r
                return FALSE;\r
        }\r
@@ -298,8 +310,11 @@ BOOL CHwSMTP::SendEmail (
        if ( !GetResponse( _T("220") ) ) return FALSE;\r
 \r
        m_bConnected = TRUE;\r
-       return SendEmail();\r
+       BOOL ret= SendEmail();\r
+\r
+       m_SendSock.Close();\r
 \r
+       return ret;\r
 }\r
 \r
 \r