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; } }
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; } }
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(); } } }
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); }
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(); } }
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); }
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(); } }
public bool Equals(EmailMessage email) { if (email.GetHashCode().Equals(this.GetHashCode())) return true; else return false; }
public void SetMailMessage(EmailMessage m) { message = m; tbEmail.Text = message.body; ViewEmail_Resize(this, EventArgs.Empty); }
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(); } }
public void SetEmailMessage(EmailMessage m) { message = m; }
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); }