public void Push(QueueMessageSendRequest messageSendRequest) { var message = messageSendRequest.Message; using (var smtpMessage = new MailMessage(messageSendRequest.OwnerAddress, messageSendRequest.RecipientAddress)) { var hasHtmlBody = !string.IsNullOrWhiteSpace(message.MessageBodyRich); foreach (var replyToRecipient in messageSendRequest.ReplyToRecipients) { smtpMessage.ReplyToList.Add(new MailAddress(replyToRecipient.Address, replyToRecipient.DisplayName)); } smtpMessage.Subject = message.MessageTitle; smtpMessage.IsBodyHtml = hasHtmlBody; smtpMessage.AddView(message.MessageBodyPlain, "text/plain"); smtpMessage.AddView(message.MessageBodyRich, "text/html"); smtpMessage.AddAttachment(message.AttachmentFilePath); using (var client = new SmtpClient { EnableSsl = messageSendRequest.IsSecure }) { client.Send(smtpMessage); } } }
public void Push(QueueMessageSendRequest messageSendRequest) { var message = messageSendRequest.Message; //create a new message object var sgMessage = SendGrid.GenerateInstance(); sgMessage.To = new[] { new MailAddress(messageSendRequest.RecipientAddress) }; if (messageSendRequest.ReplyToRecipients.Count > 0) { sgMessage.ReplyTo = messageSendRequest.ReplyToRecipients .Select(replyToRecipient => new MailAddress(replyToRecipient.Address, replyToRecipient.DisplayName)) .ToArray(); } //set the sender sgMessage.From = new MailAddress(messageSendRequest.OwnerAddress); //set the sgMessage body sgMessage.Html = message.MessageBodyRich; sgMessage.Text = message.MessageBodyPlain; //set the sgMessage subject sgMessage.Subject = message.MessageTitle; //create an instance of the SMTP transport mechanism var transportInstance = SMTP.GenerateInstance(new NetworkCredential(_userName, _password)); if (!string.IsNullOrWhiteSpace(message.AttachmentFilePath)) sgMessage.AddAttachment(message.AttachmentFilePath); //send the mail transportInstance.Deliver(sgMessage); }