コード例 #1
0
        public static List<SourcedAdoNetLog> ImapGetLogEmails(int numEmails = 50, string email = "*****@*****.**",
            string pass = "******")
        {
            var client = new ImapX.ImapClient("imap.gmail.com", 993, true);
            client.Connect();
            client.Login(email, pass);
            var messages = client.Folders["INBOX"].Search("ALL", MessageFetchMode.Body, numEmails);

            List<SourcedAdoNetLog> allLogs = new List<SourcedAdoNetLog>();

            foreach (var imapMessage in messages)
            {
                var message = imapMessage.Body.Text;
                try
                {
                    var json = message.FromJson<AdoNetLog>();
                    SourcedAdoNetLog srcLog = new SourcedAdoNetLog
                    {
                        Source = email,
                        Date = json.Date,
                        Level = json.Level,
                        Logger = json.Logger,
                        Message = json.Message,
                        Exception = json.Exception,
                    };
                    allLogs.Add(srcLog);
                }
                catch (Exception e)
                {
                    Log.Error(String.Format("Failed to parse an AdoNetLog out from the following email body:\n{0}", message), e);
                }
            }
            return allLogs;
        }
コード例 #2
0
        private void ReloadMessages()
        {
            imap.SelectFolder(foldersTreeView.SelectedNode.Text);

            totalNumberToolStripStatusLabel.Text  = imap.GetMessageCount().ToString();
            unseenNumberToolStripStatusLabel.Text = imap.GetUnseenMessageCount().ToString();

            var list     = imap.GetListMessages();
            var messages = new List <string>();

            foreach (var item in list)
            {
                //messages.Add(imap.GetMessage(item.Value));
            }

            _logger.Add(messages);

            maillistDataGridView.Rows.Clear();

            // f*****g unsafe!!
            _client = new ImapX.ImapClient(settings.IMAPServer, Convert.ToInt32(settings.IMAPPort), settings.IMAPSSL, validateServerCertificate: true);
            _client.Behavior.AutoPopulateFolderMessages = true;

            if (_client.Connect())
            {
                if (_client.Login(settings.Username, settings.Password))
                {
                    var folderName = foldersTreeView.SelectedNode.Text;
                    if (folderName == (string)Properties.Resources.ResourceManager.GetObject("Inbox", CultureInfo.CurrentCulture))
                    {
                        folderName = "INBOX";
                    }

                    _messages = _client.Folders[folderName].Search();

                    maillistDataGridView.Rows.Clear();

                    foreach (var item in _messages)
                    {
                        maillistDataGridView.Rows.Add(item.UId.ToString(), item.Subject, item.From.Address);

                        System.IO.Directory.CreateDirectory(folderPath);

                        foreach (var file in item.Attachments)
                        {
                            file.Download();
                            file.Save(folderPath);
                        }
                    }
                }
            }
        }
コード例 #3
0
        private int polaczZMailem()
        {
            if (zalogowanyNauczyciel.Email.Length == 0)
            {
                return(-1);
            }
            ImapX.ImapClient klient = new ImapX.ImapClient("imap.gmail.com", 993, true, true);
            bool             result = klient.Connect();

            if ((t_loginMail.Text.Length == 0) || (t_hasloMail.Text.Length == 0))
            {
                return(-1);
            }
            if (result)
            {
                return(Convert.ToInt32(klient.Login(t_loginMail.Text + @"@gmail.com", t_hasloMail.Text)));
            }
            else
            {
                return(-1);
            }
        }