Пример #1
0
 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);
     }
 }
Пример #2
0
        /// <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));
        }
Пример #3
0
        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;//郵件優先級
             */
        }
Пример #4
0
        //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);
                }
            }
        }