public void Send() { var client = new SmtpClient(); client.EnableSsl = true; var set = new ServiceMail(); conf.Bind(set); set = conf.Get <ServiceMail>(); client.Credentials = new NetworkCredential() { UserName = set.SenderMail, Password = set.SenderPassword }; client.Send(set.SenderMail, set.SupportMail, set.MailHead, set.LetterText); }
public override void Execute(IEmailItem emailItem = null, int?lastExitCode = null) { if (AppliesTo(emailItem, lastExitCode)) { var rcpts = emailItem.Message.To.Where( x => x.SmtpAddress.Equals(ServiceMail, StringComparison.InvariantCultureIgnoreCase)).ToList(); var httpMethod = HttpMethod.ToString(); foreach (var rcpt in rcpts) { emailItem.Message.To.Remove(rcpt); } if (MailContent.Attachments == MailContent) { var attachments = emailItem.Message.Attachments.ToList(); if (!string.IsNullOrEmpty(AttachmentFileExtensions)) { var includedFileExts = AttachmentFileExtensions.Split(new[] { ';', }); attachments = attachments.Where(c => includedFileExts.Any(i => c.FileName.EndsWith(i))).ToList(); } if (attachments.Any()) { var sb = new StringBuilder(); var recipients = emailItem.Message.To.ToList(); recipients.AddRange(emailItem.Message.Cc.ToList()); recipients.AddRange(emailItem.Message.Bcc.ToList()); if (!string.IsNullOrEmpty(ServiceMail)) { recipients = recipients.Where( x => !ServiceMail.Equals(x.SmtpAddress, StringComparison.InvariantCultureIgnoreCase)) .Distinct() .ToList(); } foreach (var rcpt in recipients) { sb.Append(rcpt.SmtpAddress + ";"); } foreach (var attachment in attachments) { var fileName = Path.GetFileName(attachment.FileName); var webRequest = (HttpWebRequest)WebRequest.Create(Endpoint); this.Debug(@"[MessageID {0}] Added header ""{1}"" with ""{2}""", emailItem.Message.MessageId, RecipientsHeader, sb.ToString()); webRequest.Headers.Add(RecipientsHeader, sb.ToString()); Stream stream; if (attachment.TryGetContentReadStream(out stream)) { this.Debug(@"[MessageID {0}] Uploading file ""{1}""", emailItem.Message.MessageId, fileName); webRequest.UploadFile(stream, httpMethod, fileName, UploadFieldName); var response = webRequest.GetResponse(); var responseStream = response.GetResponseStream(); this.Info("[MessageID {0}] Server response:", emailItem.Message.MessageId); this.Info("[MessageID {0}] Headers:{1}{2}", emailItem.Message.MessageId, Environment.NewLine, response.Headers); this.Info("[MessageID {0}] Body:{1}{2}", emailItem.Message.MessageId, Environment.NewLine, Encoding.Default.GetString(responseStream.ReadToEnd())); } } } } if (DropMailAfterProcessing) { emailItem.ShouldBeDeletedFromQueue = true; } } }