Bool CCrashHandler::MailReport(CExceptionReport&, const char * lpcszFile, const char * lpcszEmail, const char * lpcszDesc) { CMailMsg msg; msg .SetTo(m_sTo) .SetFrom(lpcszEmail) .SetSubject(m_sSubject.IsEmpty()?_T("Incident Report"):m_sSubject) .SetMessage(lpcszDesc) .AddAttachment(lpcszFile, CUtility::getAppName() + _T(".zip")); return (msg.Send()); }
int CSendMail::SendMail(const CString& FromName, const CString& FromMail, const CString& To, const CString& CC, const CString& subject, const CString& body, CStringArray &attachments, CString *errortext) { if (CRegDWORD(_T("Software\\TortoiseGit\\TortoiseProc\\SendMail\\DeliveryType"), SEND_MAIL_MAPI) == SEND_MAIL_MAPI) { CMailMsg mapiSender; BOOL bMAPIInit = mapiSender.MAPIInitialize(); if (!bMAPIInit) { if (errortext) *errortext = mapiSender.GetLastErrorMsg(); return -1; } mapiSender.SetShowComposeDialog(TRUE); mapiSender.SetFrom(FromMail, FromName); mapiSender.SetTo(To); if (!CC.IsEmpty()) mapiSender.SetCC(CC); mapiSender.SetSubject(subject); mapiSender.SetMessage(body); for (int i = 0; i < attachments.GetSize(); ++i) mapiSender.AddAttachment(attachments[i]); BOOL bSend = mapiSender.Send(); if (bSend == TRUE) return 0; else { if (errortext) *errortext = mapiSender.GetLastErrorMsg(); return -1; } } else { CString sender; sender.Format(_T("%s <%s>"), (LPCTSTR)FromName, (LPCTSTR)FromMail); CHwSMTP mail; if (CRegDWORD(_T("Software\\TortoiseGit\\TortoiseProc\\SendMail\\DeliveryType"), SEND_MAIL_SMTP_CONFIGURED) == SEND_MAIL_SMTP_CONFIGURED) { CString recipients(To); if (!CC.IsEmpty()) recipients += L";" + CC; if (mail.SendEmail((CString)CRegString(_T("Software\\TortoiseGit\\TortoiseProc\\SendMail\\Address"), _T("")), (CString)CRegString(_T("Software\\TortoiseGit\\TortoiseProc\\SendMail\\Username"), _T("")), (CString)CRegString(_T("Software\\TortoiseGit\\TortoiseProc\\SendMail\\Password"), _T("")), (BOOL)CRegDWORD(_T("Software\\TortoiseGit\\TortoiseProc\\SendMail\\AuthenticationRequired"), FALSE), sender, recipients, subject, body, nullptr, &attachments, CC, (DWORD)CRegDWORD(_T("Software\\TortoiseGit\\TortoiseProc\\SendMail\\Port"), 25), sender, To, (DWORD)CRegDWORD(_T("Software\\TortoiseGit\\TortoiseProc\\SendMail\\Encryption"), 0)) == TRUE) return 0; else { if (errortext) *errortext = mail.GetLastErrorText(); return -1; } } else if (mail.SendSpeedEmail(sender, To, subject, body, nullptr, &attachments, CC, sender)) return 0; else { if (errortext) *errortext = mail.GetLastErrorText(); return -1; } } }
int CPatch::SendMail(CString &To, CString &CC, CString &subject, CString &body, CStringArray &attachments, bool useMAPI, CString *errortext) { CString sender; sender.Format(_T("%s <%s>"), g_Git.GetUserName(), g_Git.GetUserEmail()); if (useMAPI) { CMailMsg mapiSender; BOOL bMAPIInit = mapiSender.MAPIInitialize(); if(!bMAPIInit) { if(errortext) *errortext = mapiSender.GetLastErrorMsg(); return -1; } mapiSender.SetShowComposeDialog(TRUE); mapiSender.SetFrom(g_Git.GetUserEmail()); mapiSender.SetTo(To); if(!CC.IsEmpty()) mapiSender.AddCC(CC); mapiSender.SetSubject(subject); mapiSender.SetMessage(body); for (int i = 0; i < attachments.GetSize(); ++i) { mapiSender.AddAttachment(attachments[i]); } BOOL bSend = mapiSender.Send(); if (bSend==TRUE) return 0; else { if(errortext) *errortext = mapiSender.GetLastErrorMsg(); return -1; } } else { CHwSMTP mail; if(mail.SendSpeedEmail(sender,To,subject,body,NULL,&attachments,CC,25,sender)) return 0; else { if(errortext) *errortext=mail.GetLastErrorText(); return -1; } } }