Как проверить, отправляется ли asp.net электронная почта - PullRequest
6 голосов
/ 14 сентября 2010

У меня в asp.net есть код, который отправляет электронное письмо:

public void SendEmail(string message)
{
    var body = message;

    var email = new MailMessage(ConfigurationManager.AppSettings["SenderEmail"],
                            ConfigurationManager.AppSettings["RecipientEmail"],
                            "Email Test", body);

    var client = new SmtpClient();
    client.Host = Properties.Settings.Default.smtp;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.Credentials = CredentialCache.DefaultNetworkCredentials;

    client.Send(email);
}

Я хочу знать, как это проверить.Будь то юнит-тест или интеграционный тест, мне действительно все равно.Я НЕ хочу издеваться над этим.Я на самом деле хочу написать тест, что письмо отправлено с правильным сообщением.

Может кто-нибудь помочь мне с этим?

Ответы [ 7 ]

13 голосов
/ 14 сентября 2010

Просто создайте папку с именем "maildrop" на вашем диске c: / и используйте в файле Web.config следующее:

<mailSettings>
    <smtp deliveryMethod='SpecifiedPickupDirectory'>
        <specifiedPickupDirectory pickupDirectoryLocation="c:\maildrop" />
    </smtp>
</mailSettings>

Дополнительная информация:

http://weblogs.asp.net/gunnarpeipman/archive/2010/05/27/asp-net-using-pickup-directory-for-outgoing-e-mails.aspx

2 голосов
/ 14 сентября 2010

Отправьте электронное письмо себе и посмотрите, получили ли вы его?

Если вы не знаете, как это сделать, возможно, вы захотите вернуться к основам.

1 голос
/ 15 сентября 2010
0 голосов
/ 01 ноября 2012

Вы можете использовать SMTP4Dev

http://smtp4dev.codeplex.com/

Просто установите его (это небольшая программа, которая запускается на панели задач).Конец вашей программы разработки не требуется ...

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

При отправке писем вы получите красивое всплывающее уведомление на панели задач ... просто нажмите на уведомление, чтобы просмотреть фактическое содержание письма!

0 голосов
/ 27 апреля 2012

Существует очень простой способ проверить полученное электронное письмо в тестах на одобрение. Вам нужно разделить метод на 2 метода: один, который создает электронное письмо, и тот, который отправляет электронное письмо. Тогда вы можете позвонить.

EmailApprovals.Verify(mail)

Здесь есть видео, показывающее процесс: http://www.youtube.com/watch?v=Sf16dPq2n3w

0 голосов
/ 14 сентября 2010

, чтобы настроить автоматический тест, вам нужно иметь тестовый адрес электронной почты на сервере, который вы можете запросить (поскольку тема asp.net, мы предполагаем обменный сервер), а затем запросить почтовый ящик на адрес электронной почты, который вы ищу использование:

Опция 1: обмен SDK

опция 2: через веб-запросы (если включен http-коннектор сервера обмена

opt 3: написать свой собственный простой pop3 клиент / cli / api

ссылка для опции 3: http://www.codeproject.com/KB/IP/popapp.aspx

0 голосов
/ 14 сентября 2010

Не можете ли вы поместить это в модуль, вызвать его из теста и настроить получателя на то, что вы говорите по электронной почте.если вы получите письмо, я бы сказал, что оно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...