Как отправить электронное письмо, когда оно уже есть в виде строки?
По сути, я пытаюсь отправить некоторые электронные письма с шаблонами, чтобы я мог протестировать несколько компонентов, которые обрабатывают чтение из почтовых ящиков.
Я мог бы просто загрузить Outlook и отправить пару электронных писем, но я ищу решение, которое может читать тысячи писем одновременно, поэтому мне нужно массово отправить эти шаблоны для проверки кода чтения.
Когда я говорю "массовая отправка"... у меня есть от 10 до 15 шаблонов (разных), и я хочу отправить около 1000 копий каждого в указанный почтовый ящик.
Теперь вот твой камень преткновения...
Я мог бы просто запустить экземпляр клиента SMTP и объявить новый MailMessage
объект затем отправить это с помощью клиента SMTP... проблема в том, что мои шаблоны электронной почты содержат пользовательские данные заголовка, так что это не просто вопрос msg.Body = someText
а затем установите поля "Кому", "От" и "Тема".
Я не хочу тратить время на ручной анализ этих писем, потому что заголовки довольно длинные и содержат много пользовательских значений, над которыми я буду работать позже.
Так что, если у меня есть txt
или же eml
файл Как мне отправить этот необработанный текст в мой почтовый ящик, чтобы я мог выполнить необходимое тестирование?
3 ответа
Лучший способ, которым я знаю, это использовать объекты MailBee.NET, которые не являются бесплатными, но вы можете загрузить пробную версию: http://www.afterlogic.com/mailbee-net/email-components
Тогда то, что вы ищете, выглядит примерно так:
MailBee.Mime.MailMessage message = new MailMessage();
message.LoadMessage(filestream);
MailBee.SmtpMail.Smtp.QuickSend(message);
Раскрытие информации: я не работаю на AfterLogic, но некоторые из их инструментов очень помогли с Elastic Email ( http://elasticemail.com/)
Если у вас правильно сформированное сообщение RFC822, просто передайте его как есть на этапе DATA транзакции SMTP. В Unix это просто
sendmail -oi -t <file
На некоторых дистрибутивах Linux, sendmail
не установлен на PATH; пытаться /usr/lib/sendmail
или обратитесь к форуму для вашего конкретного дистрибутива, если вы не можете придумать несколько обоснованных догадок самостоятельно.
Еще один, который появился в моем поиске - EASendMail от Email Architect. Как и MailBee.NET, это не бесплатно, но я нашел специальную документацию, в которой показаны функции, которые вы запрашиваете, вызвав метод SendRawMail. Этот пример написан на C++/CLI, но то же самое относится и к коду, написанному на C# или VB.NET. Если я в конечном итоге использую пробную версию, я опубликую свой отзыв здесь.