1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hf-hf-mail-micro-service

Клонировать/Скачать
README.md 7.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 09.03.2025 00:07 e5f2bc6

Сервис отправки почты

Описание проекта

mail-micro-service — это микросервис системы отправки электронной почты, реализованной с использованием Spring Boot и Java Mail. Поддерживает распределение нагрузки между несколькими почтовыми ящиками при помощи циклического или взвешенного циклического метода. Предоставляет API для отправки электронной почты.

Требования к разработке

Используются бесплатные почтовые ящики, имеющие ограничения на количество и частоту отправки сообщений. В случае слишком частых отправлений почта может быть отнесена к спаму (ошибка 554 DT:SPM). Поэтому используется несколько бесплатных почтовых ящиков для циклической отправки.

Технологическая среда

  • JDK 1.8+
  • Maven 3.0+

Настройка

application-dev.properties

# Метод распределения: normal (циклический), weighted (взвешенный циклический)
mail.roundrobin.type=weighted
# Директория временных файлов, путь следует изменять под Linux
file.folder=D://maindisk/temp
```### mailX.properties (X — положительное целое число, начиная с нуля; для нескольких экземпляров конфигурация должна быть последовательной, пропуски недопустимы)

Хост почтового сервера, здесь используется пример smtp.163.com

mail.smtp.host=smtp.163.com mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

Из соображений безопасности некоторые облачные провайдеры запрещают отправку через порт SMTP 25, поэтому используется порт 465 и протокол SSL для шифрования данных

mail.smtp.socketFactory.port=465

Аутентификация пользователя

mail.smtp.auth=true

Логин

mail.username=XXXX

Пароль доступа

mail.password=XXXX

Уникальный идентификатор

mail.id=mail0

Признак активности

mail.isAvailable=true

Весовой коэффициент для взвешенного циклического распределения

mail.weight=2

Признак режима отладки

mail.debug=false


## Инструкция по установке
Установите JDK, настройте окружение Maven, клонируйте код, настройте логины и пароли доступа к почтовым ящикам, скомпилируйте и соберите проект, запустите jar-файл.

```bash
mvn clean install -Dmaven.test.skip=true
java -jar target/mail-micro-service.jar

Пароль доступа отличается от основного пароля аккаунта. Для получения пароля доступа к почтовому ящику 163/126 нажмите здесь, для QQ почтового ящика нажмите здесь. Почтовый ящик должен иметь включённые POP3/SMTP службы.

Инструкция по использованию

Отправка письма без вложений POST http://127.0.0.1:12345/api/v0.0.1/mail/send?to=xxxxx@qq.com&title=Это%20тема%20без%20вложений&content=Это%20содержание%20без%20вложений

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

Тестовые скриншоты

demo

Исходный код

  • https://gitee.com/hf-hf/mail-micro-service
  • https://github.com/hf-hf/mail-micro-service## История обновлений
  • v0.0.1 Поддержка рассылки по нескольким адресам с использованием метода поллинга и взвешенного поллинга, предоставление API для отправки электронной почты
  • v0.0.2 Ведение логов отправки электронной почты и предоставление страницы для просмотра этих логов
  • v0.0.3 Добавление Dockerfile

Обновление до версии v0.0.2

Настройка аспекта логирования, использование H2 Database для хранения логов отправки электронной почты, по умолчанию активирован H2 Console для просмотра информации базы данных, данные хранятся в директории /h2/mms на том же уровне, можно использовать H2 в режиме памяти или другую конфигурацию базы данных, http://127.0.0.1:12345/api/v0.0.1/h2-console/

Предоставление страницы для просмотра истории отправки электронной почты, доступна по адресу http://127.0.0.1:12345/api/v0.0.1/

v0.0.2_1

Обновление до версии v0.0.3

Добавление Dockerfile для возможности использования контейнеризации.

Ручная установка через клонирование кода.

git clone https://github.com/hf-hf/mail-micro-service.git
cd mail-micro-service
./docker/docker-build.sh
./docker/docker-run.sh

Быстрая установка, замена файла Dockerfile-full на Dockerfile.

docker build -t mail-micro-service ./
docker run --name mail-micro-service -e JVMXMX=1G -v /app/app-log:/app/app-log -v /app/h2:/app/h2 -p 12345:12345 -d mail-micro-service

Для использования внешнего файла конфигурации поместите его в директорию config на том же уровне, что и Dockerfile, и удалите закомментированные строки в Dockerfile.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/hf-hf-mail-micro-service.git
git@api.gitlife.ru:oschina-mirror/hf-hf-mail-micro-service.git
oschina-mirror
hf-hf-mail-micro-service
hf-hf-mail-micro-service
master