public MailMessage GetMessage() { try { var client = new Pop3Client(); client.Connect(HostInput.Text, int.Parse(PortInput.Text), UseSSLSecurityCheckBox.Checked); client.Authenticate(EmailInput.Text, PasswordInput.Text); var count = client.GetMessageCount(); for (int i = count; i > 0; i++) { OpenPop.Mime.Message message = client.GetMessage(i + 1); MailMessage toproc = message.ToMailMessage(); if (toproc.Subject == SubjectInput.Text) { return(toproc); } } return(null); } catch (Exception e) { MessageBox.Show("An error occured. Err Msg: " + e.Message, "TextStudio", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } }
/// <summary> /// Decrypts the body of the given Mail /// </summary> /// <param name="msg">The encrypted Mail</param> /// <returns>The decrypted content</returns> private String DecryptMail(OpenPop.Mime.Message msg) { String text = msg.ToMailMessage().Body.Trim(); if (text == null) { return(null); } byte[] key = Encoding.UTF8.GetBytes(glob.XorKey); byte[] DecryptedText = Convert.FromBase64String(text); for (int i = 0; i < DecryptedText.Length; i++) { DecryptedText[i] ^= key[i % key.Length]; } return(Encoding.UTF8.GetString(DecryptedText)); }
void procMail(string uid, OpenPop.Mime.Message message) { FileInfo file = new FileInfo(_folder_name + "/" + uid + ".txt"); if (file.Exists) { logToFile(uid + "mail txt file exists but not be processed. >< !!!"); return; } else { logToFile(uid + "mail save to txt file."); message.Save(file); } MailMessage msg1 = message.ToMailMessage(); msg1.From = new MailAddress(_account + "@ntu.edu.tw", _account, System.Text.Encoding.UTF8); msg1.To.Clear(); if (isFindContent(file.OpenText())) { msg1.To.Add("*****@*****.**"); send_msg(msg1); logToFile(uid + " mail content include 醫學 => forword mail. !!!"); return; } String value = parseHeader(file.OpenText()); //MessageBox.Show(value); logToFile(uid + " Mail parse header to: " + value); if (value == "") { logToFile(uid + " mail header X-Ntu-Recipient: dose not exist. >< !!!"); return; } for (int i = 0; i < value.Length; ++i) { switch (value[i]) { case 'f': msg1.To.Add("*****@*****.**"); break; case 's': msg1.To.Add("*****@*****.**"); break; case 'u': switch (value[i + 1]) { case 'b': msg1.To.Add("*****@*****.**"); break; case 'r': msg1.To.Add("*****@*****.**"); break; case 'd': msg1.To.Add("*****@*****.**"); break; } break; } } send_msg(msg1); logToFile(uid + " Mail Send Successfully ^^!!!"); /* * MessageBox.Show("Form1 create success!!"); * MailMessage msg = new MailMessage(); * //msg.To.Add(string.Join(",", MailList.ToArray())); * msg.To.Add("*****@*****.**"); * msg.From = new MailAddress( _account + "@ntu.edu.tw", _account, System.Text.Encoding.UTF8); * msg.Subject = message.Headers.Subject; * msg.SubjectEncoding = System.Text.Encoding.UTF8; * msg.Body = "body is test."; * msg.IsBodyHtml = true; * msg.BodyEncoding = System.Text.Encoding.UTF8;//郵件內容編碼 * msg.Priority = MailPriority.Normal;//郵件優先級 */ }
//StringBuilder chaveserro = new StringBuilder(); public void BuscarXMLEntrada() { WorkFlowServico _WorkFlowServico = new WorkFlowServico("NFEEntrada.xmlEmail"); try { using (Pop3Client pop3Client = new Pop3Client()) { //Buscar o email _WorkFlowServico.AddEvento("INÍCIO BUSCAR E-MAIL"); _WorkFlowServico.AddEvento("INÍCIO CONECTAR SERVIDOR"); pop3Client.Connect(server, porta, EnableSSL); _WorkFlowServico.AddEvento("FIM CONECTAR SERVIDOR"); pop3Client.Authenticate(usuario, senha, AuthenticationMethod.UsernameAndPassword); List <string> lstArquivosAnexos = new List <string>(); OpenPop.Mime.Message msg = null; string xml = string.Empty; _WorkFlowServico.AddEvento("QTDE E-MAIL Nº:" + pop3Client.GetMessageCount()); int totalmsg = pop3Client.GetMessageCount(); //for (int i = 1; i <= pop3Client.GetMessageCount(); i++) for (int i = totalmsg; i > 0; --i) //for (int i = 1; i <= totalmsg; i++) { try { msg = pop3Client.GetMessage(i); bool dtok = true; DateTime dataok = DateTime.MinValue; System.Net.Mail.MailMessage msg1 = msg.ToMailMessage(); try { if (msg.Headers.DateSent >= DateTime.Now.AddDays(-12)) { } dataok = Convert.ToDateTime(msg.Headers.Date); } catch { dtok = false; } if (dtok) { if (dataok != DateTime.MinValue) { if (dataok >= DateTime.Now.AddDays(-12)) { SalvaXMLAnexoNaPasta(msg1); } } else { if (msg.Headers.DateSent >= DateTime.Now.AddDays(-12)) { SalvaXMLAnexoNaPasta(msg1); } } } } catch (Exception exs) { _WorkFlowServico.AddEvento("ERRO: " + exs.ToString()); } } _WorkFlowServico.AddEvento("FIM BUSCAR E-MAIL"); if (totalmsg > 0) { Log.For(this, PastaLogCliente).Info(_WorkFlowServico.FinishWorkFlow()); } }//end using } catch (Exception ex) { try { Log.For(this, PastaLogCliente).Error(_WorkFlowServico.FinishWorkFlow() + Environment.NewLine + ex.ToString()); objemailadm.SUBJECT = "ERRO NFE ENTRADA BUSCAR NO E-MAIL" + cnpjEmpresa.ToString() + " SCHEMA:" + schema; objemailadm.BODY = ex.ToString(); Util.EnviaEmail(objemailadm, "*****@*****.**"); } catch (Exception exs) { RJS.Optimus.Biblioteca.RJSOptimusLog.GravaLogEventViewer("RJS.Optimus.Win.Int.Servicos.NFEOptimus", string.Concat(_WorkFlowServico.FinishWorkFlow(), Environment.NewLine, exs.ToString()), System.Diagnostics.EventLogEntryType.Error); } } }