Как проверить отправку писем с asp.net на компьютер разработчика? - PullRequest
9 голосов
/ 22 октября 2010

Как мне это сделать? Класс SMTP выдает ошибку на компьютере разработчика о том, что SMTP-сервер не найден. Есть ли способ проверить отправку электронной почты на компьютере разработчика?

Ответы [ 7 ]

15 голосов
/ 22 октября 2010

Шон,

Прямо из моего web.config:

  <smtp deliveryMethod="SpecifiedPickupDirectory">
    <network host="ignored" />
    <specifiedPickupDirectory pickupDirectoryLocation="c:\email_c#" />
  </smtp>

это прекрасно работает, поскольку позволяет просматривать «электронные письма», которые сохраняются в каталоге pickupDirectoryLocation .

Попробуй ...

5 голосов
/ 22 октября 2010

Вы можете записать файлы на диск с помощью configuring System.Net.Mail.SmtpClient, чтобы использовать метод доставки типа SpecifiedPickupDirectory, я нашел пример на SO

3 голосов
/ 30 апреля 2013

Я знаю, что это старая ветка, но я наткнулся на этот сервис: http://mailtrap.io/

Что чертовски блестящеОн служит фиктивным SMTP-сервером для вашего приложения и фактически не отправляет электронные письма, но позволяет вам легко просматривать их в браузере (или через API).

2 голосов
/ 22 октября 2010

Предполагая, что под «тестовой отправкой электронной почты» вы подразумеваете отправку тестовых электронных писем вместо формального / модульного тестирования, я хотел бы использовать smtp4dev: http://smtp4dev.codeplex.com/

Как показывает страница, это фиктивный SMTP-сервер, который в основном перехватываетваши исходящие сообщения из вашего приложения, что позволяет вам проверить эти сообщения и убедиться, что все работает, как вы ожидаете.Это приложение для Windows, которое, надеюсь, не станет проблемой, если вы разрабатываете для ASP.NET.

2 голосов
/ 22 октября 2010

Есть несколько возможных причин для этого.
1) Ваш код настроен на использование локального SMTP-сервера во время разработки, и вы обновились до Windows 7? На вашем локальном хосте больше нет SMTP-сервера. Найдите и загрузите smtp4dev, чтобы ваш локальный хост мог перехватывать отправленные электронные письма.
2) Если вы используете удаленный SMTP-сервер, проверьте брандмауэр Windows, чтобы убедиться, что вам разрешено отправлять исходящую почту. Если да, подтвердите, что ваш компьютер / имя пользователя имеет права на отправку почты через этот сервер. Быстрый телнет: 25 к серверу должен сообщить вам, если ваше соединение отказано или нет.

0 голосов
/ 22 октября 2010

Не видя исключения, мы мало что можем сделать. Пока данные на вашем компьютере разработчика указывают на надлежащий SMTP-сервер и имеют правильные учетные данные, ваш код не будет проблемой, и вы должны смотреть дальше вниз по цепочке. У меня была исключительная ситуация, когда целевая машина отклоняла запрос, хотя все остальное было правильным. Потратив возрасты на двойную и тройную проверку учетных данных, отправку с нашего сервера и т. Д., Я отследил ошибку до McAfee, блокирующего порт электронной почты 25 ...

0 голосов
/ 22 октября 2010

Обычно я делаю это, создавая класс-оболочку для SmtpClient, а затем проверяю его в моих тестах.Это удаляет фактические почтовые клиент / серверные зависимости из моих модульных тестов.Сама оболочка относительно тонкая, поэтому я не чувствую необходимости создавать тесты для нее.Обычно я выполняю тестирование на уровне интеграции для таких вещей, как предварительные тесты в моей промежуточной среде.В промежуточной среде обычно используется рабочий почтовый сервер, но с «поддельными» данными - например, адреса электронной почты клиентов заменяются на мои собственные.

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

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