private void AuthenticateImapPlain(Imap4Client imap)
        {
            switch (Account.IncomingEncryptionType)
            {
                case EncryptionType.StartTLS:
                    _log.Info("IMAP StartTLS connecting to {0}", Account.EMail);
                    imap.ConnectTLS(Account.Server, Account.Port);
                    break;
                case EncryptionType.SSL:
                    _log.Info("IMAP SSL connecting to {0}", Account.EMail);
                    imap.ConnectSsl(Account.Server, Account.Port);
                    break;
                case EncryptionType.None:
                    _log.Info("IMAP connecting to {0}", Account.EMail);
                    imap.Connect(Account.Server, Account.Port);
                    break;
            }

            _log.Info("IMAP connecting OK {0}", Account.EMail);

            _log.Info("IMAP logging in to {0}", Account.EMail);

            if (Account.AuthenticationTypeIn == SaslMechanism.Login)
            {
                imap.Login(Account.Account, Account.Password, "");
            }
            else
            {
                imap.Authenticate(Account.Account, Account.Password, Account.AuthenticationTypeIn);
            }

            _log.Info("IMAP logged in to {0}", Account.EMail);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            System.Console.WriteLine("Start work");

            string sHostPop = "pop.googlemail.com";
            string sHostImap = "imap.googlemail.com";
            int nPort = 995;
            string sUserName = "******";
            string sPasword = "theSimpsons";

            try
            {
                string sEml = @"E:\ut8_encripted_teamlab.eml";
                
                ActiveUp.Net.Mail.Message m = 
                ActiveUp.Net.Mail.Parser.ParseMessageFromFile(sEml);
                var header = ActiveUp.Net.Mail.Parser.ParseHeader(sEml);
                
                Pop3Client pop = new Pop3Client();

                // Connect to the pop3 client
                pop.ConnectSsl(sHostPop, nPort, "recent:" + sUserName, sPasword);

                if (pop.MessageCount > 0)
                {
                    ActiveUp.Net.Mail.Message message = pop.RetrieveMessageObject(4);
                    string sHtml = message.BodyHtml.Text;
                }
                else
                    System.Console.WriteLine("No letters!");

                pop.Disconnect();

                Imap4Client imap = new Imap4Client();

                imap.ConnectSsl(sHostImap, 993);

                imap.Login(sUserName, sPasword);

                Mailbox inbox = imap.SelectMailbox("inbox");
                
                if (inbox.MessageCount > 0)
                {
                    ActiveUp.Net.Mail.Message message = inbox.Fetch.MessageObject(6);
                    string sHtml = message.BodyHtml.Text;
                }

                imap.Disconnect();

            }
            catch (Exception ex)
            {
                System.Console.Write("\r\n" + ex);
            }

            System.Console.WriteLine("Stop work");

            System.Console.ReadKey();
        }
Exemplo n.º 3
0
        private static Mailbox Connect(Imap4Client server, string host, int port, string username, string password, string folder, bool useSsl)
        {
            if (useSsl)
                server.ConnectSsl(host, port);
            else
                server.Connect(host, port);
            server.Login(username, password);

            return server.AllMailboxes.Cast<Mailbox>().First(x => x.Name == folder);
        }
        private void _bRetrieveMessage_Click(object sender, EventArgs e)
        {
            // We create Imap client
            Imap4Client imap = new Imap4Client();

            try
            {
                // We connect to the imap4 server
                imap.ConnectSsl(_tbImap4Server.Text);

                this.AddLogEntry(string.Format("Connection to {0} successfully", _tbImap4Server.Text));

                // Login to mail box
                imap.Login(_tbUserName.Text, _tbPassword.Text);

                this.AddLogEntry(string.Format("Login to {0} successfully", _tbImap4Server.Text));

                Mailbox inbox = imap.SelectMailbox("inbox");
                if (inbox.MessageCount > 0)
                {
                    Header header = inbox.Fetch.HeaderObject(1);

                    this.AddLogEntry(string.Format("Subject: {0} From :{1} ", header.Subject, header.From.Email));
                }

                else
                {
                    this.AddLogEntry("There is no message in the imap4 account");
                }

            }

            catch (Imap4Exception iex)
            {
                this.AddLogEntry(string.Format("Imap4 Error: {0}", iex.Message));
            }

            catch (Exception ex)
            {
                this.AddLogEntry(string.Format("Failed: {0}", ex.Message));
            }

            finally
            {
                if (imap.IsConnected)
                {
                    imap.Disconnect();
                }
            }
        }
        private void AuthenticateImapGoogleOAuth2(Imap4Client imap)
        {
            var auth = new GoogleOAuth2Authorization();
            var granted_access = auth.RequestAccessToken(Account.RefreshToken);
            if (granted_access == null) return;
            _log.Info("IMAP SSL connecting to {0}", Account.EMail);
            imap.ConnectSsl(Account.Server, Account.Port);

            _log.Info("IMAP connecting OK {0}", Account.EMail);

            _log.Info("IMAP logging to {0} via OAuth 2.0", Account.EMail);
            imap.LoginOAuth2(Account.Account, granted_access.AccessToken);
            _log.Info("IMAP logged to {0} via OAuth 2.0", Account.EMail);
        }
        public void Connect()
        {
            Imap4Client client;
            //Create a new ImapClient and connect with the server and login with the correct username and password
            client = new Imap4Client();
            client.ConnectSsl(server, port);
            client.Login(username, password);

            //If the client is connected the test passes or else it will fail
            if (client.IsConnected)
            {
                Assert.IsTrue(true);
            }
            else
            {
                Assert.IsTrue(false);
            }
        }
Exemplo n.º 7
0
 public void CONNECT_IMAP()
 {
     try
     {
         GMAIL_IMAP = new Imap4Client();
         GMAIL_IMAP.ConnectSsl(SERVER, PORTA);
         GMAIL_IMAP.Login(USER, PWD);
         bIMAP_ERROR = false;
         btnRECONNECT.Visible = false;
     }
     catch (Exception errCONN)
     {
         nIcon.Icon = MyGNotifier.Properties.Resources.MyGNotify_Empty_Error;
         btnRECONNECT.Visible = true;
         TimerGNotifier.Enabled = false;
         bIMAP_ERROR = true;
         rtError.Text += DateTime.Now.ToString() + "-> ERRORE CONNESSIONE IMAP:\n" + errCONN.Message + "\n------------------\n";
         MGN_ERROR = DateTime.Now.ToString() + "-> ERRORE CONNESSIONE IMAP: " + errCONN.Message;
         if (MyGNotifier.Properties.Settings.Default.MAIN_AUTO_NOTIFY_ERROR)
         {
             NOTIFY_ERROR(MGN_ERROR);
         }
     }
 }
Exemplo n.º 8
0
        private void btnConnectionTest_Click(object sender, EventArgs e)
        {
            if (TimerGNotifier.Enabled)
            {
                TimerGNotifier.Enabled = false;
                StartStopTimer();
            }

            bool bOK = true;
            string RESULT = "";

            # region CONNECTION ATTEMPT
            Imap4Client imap = new Imap4Client();
            try
            {
                imap.ConnectSsl(txtIMAP_SERVER.Text, Convert.ToInt16(txtPORTA_IMAP.Text));
            }
            catch
            {
                bOK = false;
                RESULT += "IMPOSSIBILE STABILIRE CONNESSINE SSL!\nVERIFICARE SERVER e PORTA!\n";
            }
            try
            {
                imap.Login(txtUSERNAME.Text, txtPASSWORD.Text);
            }
            catch
            {
                bOK = false;
                RESULT += "NOME UTENTE O PASSWORD NON CORRETTI!\n";
            }
            try
            {
                imap.Disconnect();
            } catch { }

            # endregion

            if (bOK)
            {
                MessageBox.Show("LE IMPOSTAZIONI DI CONNESSIONE SONO CORRETTE!", "CONNESSIONE OK", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                MessageBox.Show("LE IMPOSTAZIONI DI CONNESSIONE NON SONO CORRETTE!\nPREGO VERIFICARE QUANTO SEGUE:\n" + RESULT, "ATTENZIONE", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            if (bOK)
            {
                if (!TimerGNotifier.Enabled)
                {
                    TimerGNotifier.Enabled = true;
                    StartStopTimer();
                }
            }
        }
Exemplo n.º 9
0
        public void MYG_IMAP_READ_AND_MARK_ALWAYS_CONNECT()
        {
            int iCountNew = 0;
            string sNewMsgs = "";
            DateTime dtInizio = DateTime.Now;
            nIcon.Icon = MyGNotifier.Properties.Resources.MyGNotify_Checking;
            nIcon.Text = "STO CONTROLLANDO LA CASELLA DI POSTA...";

            Imap4Client imap = new Imap4Client();
            btnRECONNECT.Visible = false;

            # region CONNECT
            try
            {
                imap = new Imap4Client();
                imap.ConnectSsl(SERVER, PORTA);
                imap.Login(USER, PWD);
                bIMAP_ERROR = false;
            }
            catch (Exception errCONN)
            {
                nIcon.Icon = MyGNotifier.Properties.Resources.MyGNotify_Empty_Error;
                nIcon.Text = "ERRORE CONNESSIONE IMAP:\n" + errCONN.Message;

                bIMAP_ERROR = true;
                rtError.Text += DateTime.Now.ToString() + "-> ERRORE CONNESSIONE IMAP:\n" + errCONN.Message + "\n------------------\n";
                MGN_ERROR = DateTime.Now.ToString() + "-> ERRORE CONNESSIONE IMAP: " + errCONN.Message;
                if (MyGNotifier.Properties.Settings.Default.MAIN_AUTO_NOTIFY_ERROR)
                {
                    if (MyGNotifier.Properties.Settings.Default.MAIN_RAD_NOTIFIER)
                    {
                        RAD_NOTIFY_ERROR(MGN_ERROR);
                    }
                    else
                    {
                        NOTIFY_ERROR(MGN_ERROR);
                    }
                }
            }
            # endregion

            # region ELABORA MESSAGGI
            if (!bIMAP_ERROR)
            {
                try
                {
                    imap.Command("capability");
                    Mailbox inbox = imap.SelectMailbox("inbox");
                    int[] ids = inbox.Search("UNSEEN");
                    if (ids.Length > 0)
                    {
                        ActiveUp.Net.Mail.Message msg = null;

                        for (var i = 0; i < ids.Length; i++)
                        {
                            msg = inbox.Fetch.MessageObject(ids[i]);

                            string UNIQUE_ID = msg.Date.ToString() + msg.From.ToString();
                            if (!MSGS_ID.Contains(UNIQUE_ID))
                            {
                                iCountNew++;
                                MSGS_ID.Add(UNIQUE_ID);

                                rtLog.Text += DateTime.Now.ToString() + "\n";
                                rtLog.Text += "DATA: " + msg.Date + "\n";
                                rtLog.Text += "MITTENTE: " + msg.From + "\n";
                                rtLog.Text += "OGGETTO: " + msg.Subject + "\n";
                                rtLog.Text += "----------------------------\n";

                                sNewMsgs += "DATA: " + msg.Date + "\n";
                                sNewMsgs += "MITTENTE: " + msg.From + "\n";
                                sNewMsgs += "OGGETTO: " + msg.Subject + "\n";
                                sNewMsgs += "---------------------------\n";
                            }
                            //mark as unread
                            var flags = new FlagCollection();
                            flags.Add("Seen");
                            inbox.RemoveFlags(ids[i], flags);
                        }
                        if (iCountNew > 0)
                        {
                            iLastCOUNT = iCountNew;
                            MSGS_DETAILS = sNewMsgs;
                            nIcon.Icon = MyGNotifier.Properties.Resources.MyGNotify_Check;
                            nIcon.Text = iCountNew > 1 ? "SONO PRESENTI " + iCountNew + " NUOVI MESSAGGI" : "E' PRESENTE 1 NUOVO MESSAGGIO!";

                            bNewMsgICON = true;
                            NEW_MSGS = true;
                        }
                        else
                        {
                            nIcon.Icon = MyGNotifier.Properties.Resources.MyGNotify_Empty_Gray;
                            NEW_MSGS = false;
                        }
                    }
                    else
                    {
                        nIcon.Icon = MyGNotifier.Properties.Resources.MyGNotify_Empty_Gray;
                        NEW_MSGS = false;
                    }

                }
                catch (Exception err)
                {
                    nIcon.Icon = MyGNotifier.Properties.Resources.MyGNotify_Empty_Error;
                    rtError.Text += DateTime.Now.ToString() + "-> ERRORE CONNESSIONE IMAP:\n" + err.Message + "\n------------------\n"; ;
                    MGN_ERROR = DateTime.Now.ToString() + "-> ERRORE ELABORAZIONE IMAP: " + err.Message;
                    if (MyGNotifier.Properties.Settings.Default.MAIN_AUTO_NOTIFY_ERROR)
                    {
                        if (MyGNotifier.Properties.Settings.Default.MAIN_RAD_NOTIFIER)
                        {
                            RAD_NOTIFY_ERROR(MGN_ERROR);
                        }
                        else
                        {
                            NOTIFY_ERROR(MGN_ERROR);
                        }
                    }
                }
            }
            else
            {
                rtLog.Text += "\n---------------\n" + DateTime.Now.ToString() + "-> ERRORE CONNESSIONE IMAP!\n---------------\n";
            }
            # endregion

            # region DISCONNECT
            try
            {
                imap.Disconnect();
            }
            catch (Exception err)
            {
                nIcon.Icon = MyGNotifier.Properties.Resources.MyGNotify_Empty_Error;
                nIcon.Text = "ERRORE DISCONNESSIONE IMAP:\n" + err.Message;

                rtError.Text += DateTime.Now.ToString() + "-> ERRORE DISCONNESSIONE IMAP:\n" + err.Message + "\n------------------\n"; ;
                MGN_ERROR = DateTime.Now.ToString() + "-> ERRORE DISCONNESSIONE IMAP: " + err.Message;
                if (MyGNotifier.Properties.Settings.Default.MAIN_AUTO_NOTIFY_ERROR)
                {
                    if (MyGNotifier.Properties.Settings.Default.MAIN_RAD_NOTIFIER)
                    {
                        RAD_NOTIFY_ERROR(MGN_ERROR);
                    }
                    else
                    {
                        NOTIFY_ERROR(MGN_ERROR);
                    }
                }
            }
            # endregion

            if (bNewMsgICON) { nIcon.Icon = MyGNotifier.Properties.Resources.MyGNotify_Check; }
            else
            {
                if (!NEW_MSGS)
                {
                    nIcon.Text = "NESSUN NUOVO MESSAGGIO!";
                }
            }

            if (MyGNotifier.Properties.Settings.Default.MAIN_CHECK_MONITOR)
            {
                DateTime dtFine = DateTime.Now;
                TimeSpan ts = dtFine - dtInizio;
                rtLog.Text += DateTime.Now.ToString() + "-> FINE CONTROLLO CASELLA POSTA: DURATA CONTROLLO " + ts.Seconds.ToString() + " secondi.\n";
            }
        }
 /// <summary>
 /// Creates a connection with the server
 /// </summary>
 private void ConnectToServer()
 {
     //Create a new ImapClient and connect with the server and login with the correct username and password
     client = new Imap4Client();
     client.ConnectSsl(server, port);
     client.Login(username, password);
 }
        private void AuthenticateImapGoogleOAuth2(Imap4Client imap)
        {
            var auth = new GoogleOAuth2Authorization(_log);
            var granted_access = auth.RequestAccessToken(Account.RefreshToken);
            if (granted_access == null) 
                throw new DotNetOpenAuth.Messaging.ProtocolException("Access denied");
            _log.Info("IMAP SSL connecting to {0}", Account.EMail);
            imap.ConnectSsl(Account.Server, Account.Port);

            _log.Info("IMAP connecting OK {0}", Account.EMail);

            _log.Info("IMAP logging to {0} via OAuth 2.0", Account.EMail);
            imap.LoginOAuth2(Account.Account, granted_access.AccessToken);
            _log.Info("IMAP logged to {0} via OAuth 2.0", Account.EMail);
        }