void CTaikaDlg::OnTalletaListat() { Parse parse; if(m_mainShowMode == SHOW_LISTAT && pageListat.IsWindowVisible()) // Talleta listat { parse.talletaTTA(this->GetSafeHwnd(), "", 0, 0, 0, 0, MODE_SAVE); } }
void DlgSMTP::OnBtnlaheta() { // Käyttää tiedostoja: smtp.h, smtp.cpp --- md5.h, md5.cpp --- glob-md5.h --- Base64Coder.h, Base64Coder.cpp DWORD e; int port; time_t tt; Parse parse; COleDateTime odt; CPJNSMTPMessage cmes; CPJNSMTPConnection csmtp; CPJNSMTPBodyPart cbodypart; char temp_path[MAX_PATH * 2]; CString cs, body, attach_path, subatt; this->EnableWindow(FALSE); // Kaikki nappulat pois käytöstä m_btnLaheta.EnableWindow(FALSE); /*m_edtFrom.EnableWindow(FALSE); m_edtRecipients.EnableWindow(FALSE); m_cmbSMTPServer.EnableWindow(FALSE); m_edtSMTPPort.EnableWindow(FALSE); m_chkAsiakkaat.EnableWindow(FALSE); m_chkLaskuttajat.EnableWindow(FALSE); m_chkTyotyypit.EnableWindow(FALSE); m_chkTuotteet.EnableWindow(FALSE); m_btnPolku.EnableWindow(FALSE); m_btnCancel.EnableWindow(FALSE); m_chkKaytaAuth.EnableWindow(FALSE); m_chkMuistaUn.EnableWindow(FALSE); m_edtUsername.EnableWindow(FALSE); m_edtPassword.EnableWindow(FALSE);*/ try { if(m_edtRecipients.GetWindowTextLength() == 0) throw(ERR_SMPTP_3); if(m_edtFrom.GetWindowTextLength() == 0) throw(ERR_SMPTP_4); if(m_cmbSMTPServer.GetWindowTextLength() == 0) throw(ERR_SMPTP_7); if(m_edtSMTPPort.GetWindowTextLength() == 0) throw(ERR_SMPTP_8); m_stcInfo.coloredInfo(GetSysColor(COLOR_3DFACE), Props::i().lang("DLGSMTP_4")); time(&tt); // Luodaan liitteen ja subject-kentän nimi subatt.Format("taikalistat%s%d", _IDENTIFIER_, tt); e = GetTempPath(2 * MAX_PATH, temp_path); // polku TMP- tai TEMP-ympäristömuuttujan kansioon if(e == 0 || e > 2 * MAX_PATH) throw(ERR_SMPTP_0); // Liite lisätään aina tiedostosta CPJNSMTPBodyPart-luokalle if(m_attach_from == IDC_RADLAHDE1) // Liite t-aika -ohjelmasta (tietokannasta) { attach_path = temp_path + subatt + DOT_TTA_EXT; // polku/tiedostonimi väliaikaiseen tiedostoon if(!parse.talletaTTA(this->GetSafeHwnd(), attach_path, m_asiakkaat, m_laskuttajat, m_tyotyypit, m_tuotteet, MODE_ATTACH)) throw(GEN_ERROR); } else // Liite tiedostosta { attach_path = temp_path + subatt + DOT_TTA_EXT; CopyFile(m_attachmentpath, attach_path, FALSE); } // NoLoginMethod (HELO), AuthLoginMethod (EHLO -> AUTH LOGIN authentication), CramMD5Method (EHLO -> AUTH CRAM-MD5), LoginPlainMethod (EHLO-> AUTH LOGIN PLAIN) port = atoi(m_SMTPPort); if(!m_kayta_auth) // Ei tunnistautumista palvelimelle csmtp.Connect(m_SMTPServer, CPJNSMTPConnection::AUTH_NONE, "", "", port); else // Tunnistaudu palvelimelle csmtp.Connect(m_SMTPServer, CPJNSMTPConnection::AUTH_PLAIN, m_username, m_password, port); cmes.SetCharset(_T("iso-8859-1")); // : merkistö cbodypart.SetCharset(_T("iso-8859-1")); cmes.ParseMultipleRecipients(m_recipients, cmes.m_To); // :: vastaanottajat cmes.m_From = CPJNSMTPAddress(m_from); // ::: lähettäjä cmes.m_sSubject = subatt; // :::: otsikko odt = odt.GetCurrentTime(); // ::::: selkokielinen viesti (jos käyttäjä tutkii sähköpostiaan manuaalisesti) body.Format(Props::i().lang("DLGSMTP_5"), odt.GetDay(), odt.GetMonth(), odt.GetYear(), odt.GetHour(), odt.GetMinute(), odt.GetSecond()); cmes.AddTextBody(body); if(!(cbodypart.SetFilename(attach_path))) throw(ERR_SMPTP_2); // :::::: liite cmes.AddBodyPart(cbodypart); csmtp.SendMessage(cmes); // Lähetä viesti m_stcInfo.coloredInfo(LIGHTGREEN, Props::i().lang("DLGSMTP_6")); } catch(int err) { LPVOID lpMsgBuf; e = 0; if(err == ERR_SMPTP_0) { e = GetLastError(); FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, e, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL/*(va_list *)(DWORD)args*/); body.Format(Props::i().lang("DLGSMTP_7"), e, (LPCSTR)lpMsgBuf); body.Replace("\r\n", ""); LocalFree(lpMsgBuf); } else if(err == ERR_SMPTP_2) body = Props::i().lang("DLGSMTP_8"); else if(err == ERR_SMPTP_3) { m_edtRecipients.SetFocus(); body = Props::i().lang("DLGSMTP_9"); } else if(err == ERR_SMPTP_4) { m_edtFrom.SetFocus(); body = Props::i().lang("DLGSMTP_10"); } else if(err == ERR_SMPTP_7) { m_cmbSMTPServer.SetFocus(); body = Props::i().lang("DLGSMTP_11"); } else if(err == ERR_SMPTP_8) { m_edtSMTPPort.SetFocus(); body = Props::i().lang("DLGSMTP_12"); } if(e == ERROR_SUCCESS && err == ERR_SMPTP_0) body = Props::i().lang("DLGSMTP_13"); MessageBox(Props::i().lang("DLGSMTP_14") + body, Props::e().m_app_title, MB_ICONEXCLAMATION|MB_TASKMODAL|MB_TOPMOST|MB_OK); m_stcInfo.coloredInfo(LIGHTRED, Props::i().lang("DLGSMTP_15") + body); } catch(CPJNSMTPException* pEx) { CString sMsg; if (HRESULT_FACILITY(pEx->m_hr) == FACILITY_ITF) sMsg.Format(_T(Props::i().lang("DLGSMTP_16")), pEx->m_hr, pEx->GetErrorMessage().operator LPCTSTR()); else sMsg.Format(_T(Props::i().lang("DLGSMTP_17")), pEx->m_hr, pEx->GetErrorMessage().operator LPCTSTR(), pEx->m_sLastResponse.operator LPCTSTR()); sMsg.Replace("\r\n", ""); MessageBox(Props::i().lang("DLGSMTP_18") + sMsg, Props::e().m_app_title, MB_ICONEXCLAMATION|MB_TASKMODAL|MB_TOPMOST|MB_OK); m_stcInfo.coloredInfo(LIGHTRED, Props::i().lang("DLGSMTP_15") + CString(pEx->GetErrorMessage().operator LPCTSTR())); pEx->Delete(); } DeleteFile(attach_path); // Poista väliaikainen tiedosto this->EnableWindow(TRUE); // Kaikki nappulat takaisin käyttöön m_btnLaheta.EnableWindow(TRUE); /*m_edtFrom.EnableWindow(TRUE); m_edtRecipients.EnableWindow(TRUE); m_cmbSMTPServer.EnableWindow(TRUE); m_edtSMTPPort.EnableWindow(TRUE); m_btnCancel.EnableWindow(TRUE); if(m_attach_from == IDC_RADLAHDE1) { m_chkAsiakkaat.EnableWindow(TRUE); m_chkLaskuttajat.EnableWindow(TRUE); m_chkTyotyypit.EnableWindow(TRUE); m_chkTuotteet.EnableWindow(TRUE); m_btnPolku.EnableWindow(FALSE); } else { m_chkAsiakkaat.EnableWindow(TRUE); m_chkLaskuttajat.EnableWindow(TRUE); m_chkTyotyypit.EnableWindow(FALSE); m_chkTuotteet.EnableWindow(FALSE); m_btnPolku.EnableWindow(TRUE); } m_chkKaytaAuth.EnableWindow(TRUE); if(m_kayta_auth) { m_chkMuistaUn.EnableWindow(TRUE); m_edtUsername.EnableWindow(TRUE); m_edtPassword.EnableWindow(TRUE); } else { m_chkMuistaUn.EnableWindow(FALSE); m_edtUsername.EnableWindow(FALSE); m_edtPassword.EnableWindow(FALSE); }*/ }