\r
int CPatch::Send(CString &pathfile,CString &TO,CString &CC,bool bAttachment)\r
{\r
- CSmtp mail;\r
- \r
- if(mail.GetLastError() != CSMTP_NO_ERROR )\r
- {\r
- return -1;\r
- }\r
- \r
+ CHwSMTP mail;\r
if(this->Parser(pathfile) )\r
return -1;\r
\r
- int at=TO.Find(_T('@'));\r
- int start =0;\r
- TO = TO.Tokenize(_T(";"),start);\r
-\r
- CString server=TO.Mid(at+1);\r
-\r
- PDNS_RECORD pDnsRecord; \r
-\r
- DnsQuery(server, DNS_TYPE_MX,DNS_QUERY_BYPASS_CACHE,\r
- NULL, //Contains DNS server IP address.\r
- &pDnsRecord, //Resource record that contains the response.\r
- NULL); \r
-\r
- CString name,address;\r
- GetNameAddress(this->m_Author,name,address);\r
-\r
-\r
- CStringArray attchments,CCArray;\r
+ CStringArray attachments,CCArray;\r
if(bAttachment)\r
{\r
- attchments.Add(pathfile);\r
+ attachments.Add(pathfile);\r
}\r
\r
- ConvertToArray(CC,CCArray);\r
+ //ConvertToArray(CC,CCArray);\r
\r
- SendEmail(FALSE,pDnsRecord->Data.MX.pNameExchange,\r
- NULL,NULL,FALSE,address,TO,this->m_Author,TO,this->m_Subject,m_strBody,0,&attchments,&CCArray);\r
- \r
- DnsRecordListFree(pDnsRecord,DnsFreeRecordList);\r
+ CString sender;\r
+ sender.Format(_T("%s <%s> "),g_Git.GetUserName(),g_Git.GetUserEmail());\r
\r
+ if(mail.SendSpeedEmail(this->m_Author,TO,this->m_Subject,this->m_strBody,NULL,&attachments,CC,25,sender))\r
+ return 0;\r
+ else\r
+ {\r
+ this->m_LastError=mail.GetLastErrorText();\r
+ return -1;\r
+ }\r
#if 0\r
CRegString server(REG_SMTP_SERVER);\r
CRegDWORD port(REG_SMTP_PORT,25);\r
\r
\r
}\r
+int CPatch::Send(CTGitPathList &list,CString &To,CString &CC, CString &subject,bool bAttachment,CString *errortext)\r
+{\r
+ CStringArray attachments;\r
+ CString body;\r
+ for(int i=0;i<list.GetCount();i++)\r
+ {\r
+ CPatch patch;\r
+ patch.Parser((CString&)list[i].GetWinPathString());\r
+ if(bAttachment)\r
+ {\r
+ attachments.Add(list[i].GetWinPathString());\r
+ body+=patch.m_Subject;\r
+ body+=_T("\r\n");\r
+\r
+ }else\r
+ {\r
+ g_Git.StringAppend(&body,(BYTE*)patch.m_Body.GetBuffer(),CP_ACP,patch.m_Body.GetLength());\r
+ }\r
+\r
+ }\r
+\r
+ CHwSMTP mail;\r
+ \r
+ CString sender;\r
+ sender.Format(_T("%s <%s> "),g_Git.GetUserName(),g_Git.GetUserEmail());\r
+\r
+ if(mail.SendSpeedEmail(sender,To,subject,body,NULL,&attachments,CC,25,sender))\r
+ return 0;\r
+ else\r
+ {\r
+ if(errortext)\r
+ *errortext=mail.GetLastErrorText();\r
+ return -1;\r
+ }\r
+\r
+}\r
\r
int CPatch::Parser(CString &pathfile)\r
{\r
CString str;\r
\r
- CStdioFile PatchFile;\r
+ CFile PatchFile;\r
\r
m_PathFile=pathfile;\r
if( ! PatchFile.Open(pathfile,CFile::modeRead) )\r
return -1;\r
\r
int i=0;\r
- while(PatchFile.ReadString(str))\r
- {\r
+#if 0\r
+ while(i<4)\r
+ { PatchFile.ReadString(str);\r
if(i==1)\r
this->m_Author=str.Right( str.GetLength() - 6 );\r
if(i==2)\r
this->m_Date = str.Right( str.GetLength() - 6 );\r
if(i==3)\r
this->m_Subject = str.Right( str.GetLength() - 8 );\r
- if(i==4)\r
- break;\r
+ \r
i++; \r
}\r
\r
- m_Body.resize(PatchFile.GetLength() - PatchFile.GetPosition());\r
- PatchFile.Read(&m_Body.at(0),PatchFile.GetLength() - PatchFile.GetPosition());\r
- m_Body.push_back(0);\r
-\r
+ LONGLONG offset=PatchFile.GetPosition();\r
+#endif\r
+ PatchFile.Read(m_Body.GetBuffer(PatchFile.GetLength()),PatchFile.GetLength());\r
+ m_Body.ReleaseBuffer();\r
PatchFile.Close();\r
\r
- g_Git.StringAppend(&m_strBody,&m_Body[0],CP_ACP);\r
- \r
+ int start=0;\r
+ CStringA one;\r
+ one=m_Body.Tokenize("\n",start);\r
+\r
+ one=m_Body.Tokenize("\n",start);\r
+ if(one.GetLength()>6)\r
+ g_Git.StringAppend(&m_Author,(BYTE*)one.GetBuffer()+6,CP_ACP,one.GetLength()-6);\r
+\r
+ one=m_Body.Tokenize("\n",start);\r
+ if(one.GetLength()>6)\r
+ g_Git.StringAppend(&m_Date,(BYTE*)one.GetBuffer()+6,CP_ACP,one.GetLength()-6);\r
\r
+ one=m_Body.Tokenize("\n",start);\r
+ if(one.GetLength()>8)\r
+ g_Git.StringAppend(&m_Subject,(BYTE*)one.GetBuffer()+8,CP_ACP,one.GetLength()-8);\r
+\r
+ //one=m_Body.Tokenize("\n",start);\r
+ \r
+ g_Git.StringAppend(&m_strBody,(BYTE*)m_Body.GetBuffer()+start+1,CP_ACP,m_Body.GetLength()-start-1);\r
+ \r
+ return 0;\r
}\r
\r
void CPatch::GetNameAddress(CString &in, CString &name,CString &address)\r
else\r
address=in;\r
}\r
-\r
+#if 0\r
void CPatch::AddRecipient(CSmtp &mail, CString &tolist, bool isCC)\r
{\r
int pos=0;\r
mail.AddRecipient(CUnicodeUtils::GetUTF8(one));\r
}\r
}\r
-}
\ No newline at end of file
+}\r
+#endif
\ No newline at end of file