public void SendMail(TheMail mail) { try { var currentMailBox = SessionContext.Instance.CurrentUser.ChachedEmailBoxes.Single(x => x.Id == mail.ChachedEmailBoxId); var currentOutgoingParam = currentMailBox.OutgoingEmailServerParam; MailAddress from = new MailAddress(mail.FromAddress, mail.FromDisplayName); MailAddress to = new MailAddress(mail.ToAddress); MailMessage m = new MailMessage(from, to); //m.Attachments.Add(new Attachment("E://colors.txt")); m.Subject = mail.Subject; m.Body = mail.Body; m.IsBodyHtml = true; SmtpClient smtpClient = new SmtpClient(currentOutgoingParam.Hostname, currentOutgoingParam.Port); smtpClient.Credentials = new NetworkCredential(currentMailBox.Login, currentMailBox.Password); smtpClient.EnableSsl = currentOutgoingParam.UseSsl; smtpClient.Send(m); } catch { throw; } }
private void BtnSendResponse_Click(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(meResponseBody.Text)) { try { var focusedMail = wevMails.GetFocusedRow() as TheMail; var responseMail = new TheMail(); responseMail.Body = meResponseBody.Text; responseMail.FromAddress = focusedMail.ToAddress; responseMail.FromDisplayName = $"ФрэдроКлиент"; responseMail.ToAddress = focusedMail.FromAddress; responseMail.ToDisplayName = focusedMail.FromDisplayName; responseMail.Subject = focusedMail.Subject; responseMail.ChachedEmailBoxId = focusedMail.ChachedEmailBoxId; _model.SendMail(responseMail); TwinkleMessageBox.ShowSucces("Письмо отправлено!"); meResponseBody.Text = ""; SetResponseBodyVisibility(false); } catch (Exception ex) { TwinkleMessageBox.ShowError($"Ответ не отправлен! {ex.Message}"); } } else { TwinkleMessageBox.ShowError("Нельзя отправить пустой ответ!"); } }
public void UpdateMail(TheMail mail) { using (var db = new TwinkleDbContext()) { db.Entry(mail).State = EntityState.Modified; db.SaveChanges(); } }
public void UpdateMail(TheMail mail) { try { _dbDataManager.UpdateMail(mail); } catch (Exception ex) { throw new FaultException(ex.Message); } }
public void SendMail(TheMail mail) { try { _mailTransferManager.SendMail(mail); } catch (Exception ex) { throw new FaultException(ex.Message); } }
internal void SendMail(TheMail responseMail) { try { _serviceClient.SendMail(responseMail); } catch (Exception ex) { throw ex; } }
public void InsertMail(TheMail mail) { using (var db = new TwinkleDbContext()) { if (!db.Mails.Select(x => x.Id).Contains(mail.Id)) { db.Mails.Add(mail); db.SaveChanges(); } } }
public void UpdateMail(TheMail mail) { try { ServiceClient.UpdateMail(mail); } catch (FaultException ex) { TwinkleMessageBox.ShowError(ex.Message); ServiceClient.Abort(); } }
internal static TheMail GetTheMail(this Message mail) { var attachmentParts = mail.FindAllAttachments(); var plainTextParts = mail.FindAllMessagePartsWithMediaType(PLAIN_TEXT); var htmlTextParts = mail.FindAllMessagePartsWithMediaType(HTML_TEXT); var theMail = new TheMail(); theMail.Id = mail.Headers.MessageId; theMail.FromFullRaw = mail.Headers.From.Raw; theMail.FromAddress = mail.Headers.From.Address; theMail.FromDisplayName = mail.Headers.From.DisplayName; theMail.ToFullRaw = mail.Headers.To.FirstOrDefault()?.Raw; theMail.ToAddress = mail.Headers.To.FirstOrDefault()?.Address; theMail.ToDisplayName = mail.Headers.To.FirstOrDefault()?.DisplayName; theMail.Date = mail.Headers.DateSent; theMail.Subject = mail.Headers.Subject; theMail.Body = plainTextParts.FirstOrDefault()?.GetBodyAsText() ?? htmlTextParts.FirstOrDefault()?.GetBodyAsText(); //---↓↓↓---костыль---↓↓↓--- if (theMail.FromDisplayName.Contains("??") || theMail.Subject.Contains("??")) { var messageBytes = mail.RawMessage; var messageString = Encoding.UTF8.GetString(messageBytes); if (theMail.FromDisplayName.Contains("??")) { var regexFrom = new Regex("From:\\s(.*)\r\n"); var matchFrom = regexFrom.Match(messageString); var fullFromString = matchFrom.Value.Trim().Substring(6).Replace("\"", ""); //6 = "From: ".length theMail.FromFullRaw = fullFromString; theMail.FromDisplayName = fullFromString.Substring(0, fullFromString.IndexOf('<') - 1); } if (theMail.Subject.Contains("??")) { var regexSubj = new Regex("Subject:\\s(.*)\r\n"); var matchSubj = regexSubj.Match(messageString); var fullSubjString = matchSubj.Value.Trim().Substring(9); // = "Subject: ".length theMail.Subject = fullSubjString; } } //---↑↑↑---костыль---↑↑↑--- return(theMail); }
private void BtnSend_Click(object sender, EventArgs e) { if (_model.FromEmailBoxId.HasValue && !string.IsNullOrWhiteSpace(meBody.Text)) { try { sleFrom.ErrorText = string.Empty; var responseMail = new TheMail(); responseMail.Body = meBody.Text; responseMail.FromAddress = _model.FromEmailBoxAddress; responseMail.FromDisplayName = "ФрэдроКлиент"; responseMail.ToAddress = teTo.Text; responseMail.Subject = teSubject.Text; responseMail.ChachedEmailBoxId = _model.FromEmailBoxId; _model.SendMail(responseMail); TwinkleMessageBox.ShowSucces("Письмо отправлено!"); } catch (Exception ex) { TwinkleMessageBox.ShowError($"Письмо не отправлено! {ex.Message}"); } finally { Close(); } } else if (!_model.FromEmailBoxId.HasValue) { sleFrom.ErrorText = "Ошибка. Необходимо указать почтовый адрес, с которого будет отправлено письмо."; } else { TwinkleMessageBox.ShowError("Нельзя отправить пустое сообщение!"); } }
private void FillMailExtraFields(TheMail mail, CachedEmailBox cachedEmailBox) { mail.IsOutcoming = (cachedEmailBox.Login == mail.FromAddress); mail.IsIncoming = (cachedEmailBox.Login == mail.ToAddress); mail.ChachedEmailBoxId = cachedEmailBox.Id.Value; }