Как отправить электронное письмо, когда оно уже есть в виде строки?

По сути, я пытаюсь отправить некоторые электронные письма с шаблонами, чтобы я мог протестировать несколько компонентов, которые обрабатывают чтение из почтовых ящиков.

Я мог бы просто загрузить 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. Если я в конечном итоге использую пробную версию, я опубликую свой отзыв здесь.

Другие вопросы по тегам