2011-12-22 6 views
33

Я хочу протестировать Java-код для отправки электронной почты. Я не хочу использовать какой-либо коммерческий почтовый клиент или подключаться к любым внешним почтовым провайдерам (например, Gmail или Yahoo). Я хотел бы знать, есть ли какое-либо программное обеспечение, которое позволяет пользователю настраивать фиктивные адреса электронной почты и сервер (локально), которые могут использоваться в моем программном обеспечении для отправки и получения писем. Я просто хочу проверить функциональность Java-кода.Простой локальный SMTP-сервер

+0

Проверьте это .. http://enbiso.github.io/dummy-smtp-server/ –

ответ

20

Для тестирования электронной почты попробуйте Dumbster. С этой страницы:

Dumbster очень простой сервер поддельной SMTP предназначен для приложений тестирования модулей и системы, которые посылают сообщения по электронной почте. Он отвечает на все стандартные команды SMTP, но не доставляет сообщения пользователю. Сообщения сохраняются внутри Dumbster для последующего извлечения и проверки .

The Dumbster легко вписывается в вашу стратегию тестирования. Как , так как ваше приложение обращается к серверу электронной почты с помощью SMTP, тогда Dumbster может быть использован для тестирования приложения без изменений кода.

+0

А, это тот, который я пытался запомнить! Я знал, что узнаю это, как только увижу, но я просто не мог назвать это имя. – Argyle

+0

Dumbster [сломан] (http://sourceforge.net/p/dumbster/bugs/15/). –

+0

_ В качестве примечания стороны: _ есть [несколько _forks_] (https://github.com/search?utf8=%E2%9C%93&q=dumbster&type=) исходного «Dumbster», которые улучшают его функциональность по-разному. – informatik01

7

Пробег: GreenMail. Он ориентирован на использование JUnit, но он должен делать то, что вам нужно. Вы можете запустить его в экземпляре JBoss или попросите JUnit-тесты отправлять почту себе, в зависимости от ваших конкретных потребностей.

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

8

Вы можете использовать Wiser в библиотеке SubEthaSMTP, цель Wiser - это именно то, что вы хотите, модульное тестирование.

+0

Код ошибки Wiser: http://code.google.com/p/subethasmtp/wiki/Wiser – palacsint

+0

Также не работает, когда мой модульный тест отправляет 2 html-сообщения по электронной почте, wiser получает 3 как-то. К счастью, GreenMail справляется с этим. – okutane

+0

okutane: Думаю, вы отправили две письма с тремя получателями. API Wiser возвращает письма получателями. Это действительно не в последней выпущенной версии, но в trunk содержится обновленный JavaDoc, чтобы сделать это более очевидным: «Количество почтовых транзакций и количество писем могут быть разными. Если сообщение получено с несколькими получателями в одном mail , то список будет содержать больше экземпляров WiserMessage, один для каждого получателя. " –

3

на Leopard вы можете начать локальный SMTP-сервер (Postfix) на OS-X Leopard

sudo vi /System/Library/LaunchDaemons/org.postfix.master.plist 

перед закрывающим тегом в конце:

<key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> 

затем начать дело с

sudo postfix start 

теперь вы проверяете, работает ли служба:

telnet localhost 25 
3

javamail-file-transport сохраняет сообщения электронной почты в файлы вместо отправки их через SMTP-сервер.

javaMail extensions проект на GitHub.

Он добавляет файл транспорта, что позволяет:

  • Сохранить почту в виде файлов в формате text вместо отправки их
  • СОХРАНИТЬ почты в файлы в формате mbox вместо отправки их
  • добавить журнал информацию вместо отправки по электронной почте
12

Я предпочитаю Fake SMTP для этого. Это настольное приложение (упакованное в файл jar). Поскольку он написан на Java, вы можете запускать его как из Linux/Mac/Windows

+0

Это неинвазивное и чистое решение, по крайней мере, с применением пружин – Stackee007

1

Я использовал Mailtrap несколько раз, и я могу порекомендовать его.

0

use the Aspirin Из документов: Аспирин является встраиваемым SMTP-сервером только для отправки на Java-разработчикам.

0

удивительные Докер
https://hub.docker.com/r/mailhog/mailhog/
(Github - https://github.com/mailhog/MailHog)
Этот Докер имеет два порта:
Один порт для отправки SMTP сообщений электронной почты (SMTP: //0.0.0.0: 1025 /)
Второй порт дисплея электронной почты в Интернете (http://0.0.0.0:8025/)

пробег докер:
docker pull mailhog/mailhog
docker run --name=mailhog -d -p 1025:1025 -p 8025:8025 mailhog/mailhog

Смежные вопросы