示例#1
0
void CTaikaDlg::OnTalletaListat() 
{
    Parse parse;

    if(m_mainShowMode == SHOW_LISTAT && pageListat.IsWindowVisible())        // Talleta listat
	{ parse.talletaTTA(this->GetSafeHwnd(), "", 0, 0, 0, 0, MODE_SAVE); }
}
示例#2
0
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);
	}*/
}