Exemplo n.º 1
0
        public void SetEmailType(EmailType type, EmailMessage previousMessage)
        {
            this.previousMessage = previousMessage;

            string addr = previousMessage.sourceAddress;
            string subj = previousMessage.subject;
            switch (type)
            {
                case EmailType.Reply:
                case EmailType.ReplyAll:
                    if (addr != null && addr != "")
                    {
                        txtTo.Text = addr;
                    }
                    if (subj != null && subj != "")
                    {
                        txtSubject.Text = subj;
                    }
                    goto case EmailType.Forward;
                case EmailType.Forward:
                    if (subj != null && subj != "")
                    {
                        txtSubject.Text = subj;
                    }
                    break;
            }
        }
Exemplo n.º 2
0
 public int CompareTo(EmailMessage email)
 {
     switch(email.date.CompareTo(this.date))
     {
         case -1:
             return -1;
         case 0:
             return 0;
         case 1:
             return 1;
         default:
             Console.WriteLine("Invalid comparison");
             return -99;
     }
 }
Exemplo n.º 3
0
        public void DeleteMessage(EmailMessage email)
        {
            using (ImapClient client = new ImapClient(imapHost, 993, username, password, AuthMethod.Login, true))
            {

                try { client.MoveMessage(email.getUID(), "[Gmail]/Trash"); }
                catch (BadServerResponseException e)
                {
                    //be really sad
                }catch(Exception e)
                {
                    ALSMessageBox mb = new ALSMessageBox("Unknown error occurred");
                    mb.Show();
                }

            }
        }
Exemplo n.º 4
0
        public void sendReply(EmailMessage emailBeingRespondedTo, string body)
        {
            string subjectWithRe;
            string bodyWithHistory = body + "\n\n\n" + emailBeingRespondedTo.body;
            if (!emailBeingRespondedTo.subject.Substring(0, 3).Equals("RE:"))
                subjectWithRe = "RE: " + emailBeingRespondedTo.subject;
            else
                subjectWithRe = emailBeingRespondedTo.subject;

            EmailMessage message1 = new EmailMessage(subjectWithRe, bodyWithHistory, emailBeingRespondedTo.sourceAddress, emailBeingRespondedTo.destinationAddress, DateTime.Now);
            this.sendMessage(message1);
        }
Exemplo n.º 5
0
 public void sendMessage(EmailMessage mail)
 {
     try
     {
         MailMessage message = new MailMessage(mail.destinationAddress, mail.destinationAddress, mail.subject, mail.body);
         sendClient.Send(message);
     }
     catch (FormatException e)
     {
         ALSMessageBox mb = new ALSMessageBox("Invalid email format");
         mb.Show();
     }
     catch (Exception e)
     {
         ALSMessageBox mb = new ALSMessageBox("Unknown error occurred");
         mb.Show();
     }
 }
Exemplo n.º 6
0
        public void sendForward(EmailMessage forwardedEmail, string destinationAddress, string newBody)
        {
            string originalMessage = "Original: \n From: " + forwardedEmail.sourceAddress + "\nTo: " + forwardedEmail.destinationAddress
                + "\n Subject: " + forwardedEmail.subject + "\n" + forwardedEmail.body;

            string combinedBody = newBody + "\n\n\n" + originalMessage;
            string subject = "Fwd: " + forwardedEmail.subject;

            MailMessage message = new MailMessage(username, destinationAddress, subject, combinedBody);
            this.sendMessage(message);
        }
Exemplo n.º 7
0
        public void retrieveMail(String mailbox = "INBOX")
        {
            currentMailBox = mailbox;
            MailList.Clear();

            if (imapHost.Equals(null) || imapHost.Equals(null) || password.Equals(null))
            {
                ALSMessageBox mb = new ALSMessageBox("Not logged in");
                mb.Show();
                return;
            }

            try {
                // The default port for IMAP over SSL is 993.
                using (ImapClient client = new ImapClient(imapHost, 993, username, password, AuthMethod.Login, true))
                {
                    folders = client.ListMailboxes();
                    Console.WriteLine("We are connected!");
                    // Returns a collection of identifiers of all mails matching the specified search criteria.
                    IEnumerable<uint> uids = null;
                    uids = client.Search(SearchCondition.All(), mailbox);
                    // Download mail messages from the default mailbox.
                    uint[] uidArray = uids.ToArray();
                    Array.Reverse(uidArray);

                    uids = uids.Reverse();

                    if (uidArray.Length > DOWNLOAD_COUNT)
                        Array.Resize(ref uidArray, DOWNLOAD_COUNT);

                    IEnumerable<MailMessage> messages = client.GetMessages(uidArray, FetchOptions.NoAttachments, true, mailbox);
                    IEnumerator<MailMessage> messageList = messages.GetEnumerator();
                    IEnumerator<uint> uidList = uids.GetEnumerator();

                    while (messageList.MoveNext())
                    {
                        uidList.MoveNext();

                        string toAddress;

                        try
                        {
                            toAddress = messageList.Current.To[0].Address;
                        }
                        catch
                        {
                            toAddress = "None";
                        }

                        EmailMessage temp = new EmailMessage(messageList.Current.Subject, messageList.Current.Body,
                            toAddress, messageList.Current.From.Address, EmailClient.Date(messageList.Current),
                            uidList.Current);

                        int hash = temp.GetHashCode();

                        bool contains = false;

                        foreach (EmailMessage m in MailList)
                        {
                            if (m.GetHashCode().Equals(hash))
                                contains = true;
                        }

                        if (!contains)
                        {
                            bool added = false;
                            int index = 0;
                            if (MailList.Count == 0)
                            {
                                MailList.Add(temp);
                            }
                            else
                            {

                                while (!added && index < MailList.Count)
                                {
                                    switch (MailList[index].CompareTo(temp))
                                    {
                                        case -1:
                                            MailList.Insert(index, temp);
                                            added = true;
                                            break;
                                        case 0:
                                            MailList.Insert(index, temp);
                                            added = true;
                                            break;
                                        case 1:
                                            index++;
                                            break;
                                        case -99: //error code
                                            break;
                                    }
                                }
                                if (!added)
                                    MailList.Add(temp);
                            }

                        }

                    }

                }

                MailList.Reverse();
            }
            catch (InvalidCredentialsException)
            {

            }catch(System.Net.Sockets.SocketException e)
            {
                ALSMessageBox mb = new ALSMessageBox("Not connected to internet");
                mb.Show();
            }catch(Exception e)
            {
                ALSMessageBox mb = new ALSMessageBox("Unknown error occurred");
                mb.Show();
            }
        }
Exemplo n.º 8
0
 public bool Equals(EmailMessage email)
 {
     if (email.GetHashCode().Equals(this.GetHashCode()))
         return true;
     else
         return false;
 }
Exemplo n.º 9
0
 public void SetMailMessage(EmailMessage m)
 {
     message = m;
     tbEmail.Text = message.body;
     ViewEmail_Resize(this, EventArgs.Empty);
 }
Exemplo n.º 10
0
        public void retrieveMail(String mailbox = "INBOX")
        {
            currentMailBox = mailbox;
            MailList.Clear();

            if (imapHost.Equals(null) || imapHost.Equals(null) || password.Equals(null))
            {
                ALSMessageBox mb = new ALSMessageBox("Not logged in");
                mb.Show();
                return;
            }


            try {
                // The default port for IMAP over SSL is 993.
                using (ImapClient client = new ImapClient(imapHost, 993, username, password, AuthMethod.Login, true))
                {
                    folders = client.ListMailboxes();
                    Console.WriteLine("We are connected!");
                    // Returns a collection of identifiers of all mails matching the specified search criteria.
                    IEnumerable <uint> uids = null;
                    uids = client.Search(SearchCondition.All(), mailbox);
                    // Download mail messages from the default mailbox.
                    uint[] uidArray = uids.ToArray();
                    Array.Reverse(uidArray);

                    uids = uids.Reverse();

                    if (uidArray.Length > DOWNLOAD_COUNT)
                    {
                        Array.Resize(ref uidArray, DOWNLOAD_COUNT);
                    }

                    IEnumerable <MailMessage> messages    = client.GetMessages(uidArray, FetchOptions.NoAttachments, true, mailbox);
                    IEnumerator <MailMessage> messageList = messages.GetEnumerator();
                    IEnumerator <uint>        uidList     = uids.GetEnumerator();

                    while (messageList.MoveNext())
                    {
                        uidList.MoveNext();

                        string toAddress;

                        try
                        {
                            toAddress = messageList.Current.To[0].Address;
                        }
                        catch
                        {
                            toAddress = "None";
                        }

                        EmailMessage temp = new EmailMessage(messageList.Current.Subject, messageList.Current.Body,
                                                             toAddress, messageList.Current.From.Address, EmailClient.Date(messageList.Current),
                                                             uidList.Current);

                        int hash = temp.GetHashCode();

                        bool contains = false;

                        foreach (EmailMessage m in MailList)
                        {
                            if (m.GetHashCode().Equals(hash))
                            {
                                contains = true;
                            }
                        }

                        if (!contains)
                        {
                            bool added = false;
                            int  index = 0;
                            if (MailList.Count == 0)
                            {
                                MailList.Add(temp);
                            }
                            else
                            {
                                while (!added && index < MailList.Count)
                                {
                                    switch (MailList[index].CompareTo(temp))
                                    {
                                    case -1:
                                        MailList.Insert(index, temp);
                                        added = true;
                                        break;

                                    case 0:
                                        MailList.Insert(index, temp);
                                        added = true;
                                        break;

                                    case 1:
                                        index++;
                                        break;

                                    case -99:     //error code
                                        break;
                                    }
                                }
                                if (!added)
                                {
                                    MailList.Add(temp);
                                }
                            }
                        }
                    }
                }

                MailList.Reverse();
            }
            catch (InvalidCredentialsException)
            {
            }catch (System.Net.Sockets.SocketException e)
            {
                ALSMessageBox mb = new ALSMessageBox("Not connected to internet");
                mb.Show();
            }catch (Exception e)
            {
                ALSMessageBox mb = new ALSMessageBox("Unknown error occurred");
                mb.Show();
            }
        }
Exemplo n.º 11
0
 public void SetEmailMessage(EmailMessage m)
 {
     message = m;
 }
Exemplo n.º 12
0
        private void BtnSend_Click(object sender, EventArgs e)
        {
            EmailMessage message = new EmailMessage(txtSubject.Text, txtBody.Text, txtTo.Text, txtSubject.Text, new DateTime());
            EmailClient Client = EmailFactory.GetEmailClient();

            switch (type)
            {
                case EmailType.Compose:
                    Client.sendMessage(message);
                    break;
                case EmailType.Forward:
                    Client.sendForward(previousMessage, txtSubject.Text, txtBody.Text);
                    break;
                case EmailType.Reply:
                case EmailType.ReplyAll:
                    Client.sendReply(previousMessage, txtBody.Text);
                    break;
            }

            Hide();
            if (Send_Click != null)
                Send_Click(this, e);
        }
Exemplo n.º 13
0
 public void SetEmailMessage(EmailMessage m)
 {
     message = m;
 }
Exemplo n.º 14
0
 public void SetMailMessage(EmailMessage m)
 {
     message      = m;
     tbEmail.Text = message.body;
     ViewEmail_Resize(this, EventArgs.Empty);
 }