public void Send(InternetMailMessage message, InternetMailTextProcessing processText = InternetMailTextProcessing.Process, InternetMailProtocol protocol = InternetMailProtocol.Smtp) { if (protocol == InternetMailProtocol.Pop3) { throw new RuntimeException("Недопустимо указывать POP3 в качестве протокола отправки почты!"); } IMailSender sender = null; if (protocol == InternetMailProtocol.Smtp) { sender = smtpClient; } else if (protocol == InternetMailProtocol.Imap) { sender = receiver as ImapReceiver; if (sender == null) { throw new RuntimeException("Соединение IMAP не установлено!"); } } sender?.Send(message, processText); }
public MimeMessage CreateNativeMessage(InternetMailTextProcessing processText = InternetMailTextProcessing.Process) { if (processText == InternetMailTextProcessing.Process) { ProcessTexts(); } var messageToSend = new MimeMessage(); if (Sender.DataType == DataType.String) { messageToSend.From.Add(new MailboxAddress("", Sender.AsString())); } else if (Sender is InternetMailAddress) { messageToSend.From.Add((Sender as InternetMailAddress).GetInternalObject()); } else { throw new RuntimeException("Неверный тип отправителя!"); } foreach (var recipient in To) { messageToSend.To.Add(recipient.GetInternalObject()); } foreach (var replyTo in ReplyTo) { messageToSend.ReplyTo.Add(replyTo.GetInternalObject()); } messageToSend.Subject = Theme; if (Texts.Count() == 1) { messageToSend.Body = Texts.Get(0).CreateTextPart(); } else { var body = new Multipart(); foreach (var text in Texts) { var part = text.CreateTextPart(); body.Add(part); } messageToSend.Body = body; } return(messageToSend); }
public void Send(InternetMailMessage message, InternetMailTextProcessing processText) { var messageToSend = message.CreateNativeMessage(processText); _client.Send(messageToSend); }