Перейти к основному содержимому

Настройка Email / SMTP

FeedbackPulse отправляет различные транзакционные письма. Правильная настройка email важна для:

  • Приветственных писем новым арендаторам
  • Ссылок приглашений в команду
  • Писем сброса пароля
  • Верификации через email OTP (для форм обратной связи)
  • Ежедневных/еженедельных дайджестов
  • Запланированных отчётов
  • Предупреждений об использовании
  • Уведомлений об изменении плана

⚙️ Методы настройки

Метод 1: Через панель администратора (рекомендуется)

  1. Войдите как суперадминистратор
  2. Перейдите в Администратор → Настройки → Email
  3. Заполните SMTP-данные
  4. Нажмите Отправить тестовое письмо для проверки
  5. Сохраните

Метод 2: Через файл .env

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="FeedbackPulse"

📮 Настройка для конкретных провайдеров

📧 Gmail

MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your_app_password
MAIL_ENCRYPTION=tls

⚠️ Важно: Gmail требует Пароль приложения, а не ваш обычный пароль.

  1. Перейдите в Безопасность аккаунта Google
  2. Включите двухэтапную верификацию (обязательно)
  3. Перейдите в Пароли приложений → выберите «Почта» → сгенерируйте
  4. Используйте сгенерированный 16-символьный пароль

🔴 Лимиты Gmail: 500 писем/день (личный) или 2000/день (Workspace). Не рекомендуется для production SaaS.

🔫 Mailgun

MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your_mailgun_smtp_password
MAIL_ENCRYPTION=tls
  1. Зарегистрируйтесь на Mailgun
  2. Добавьте домен → верифицируйте DNS-записи
  3. Перейдите в Sending → Domain Settings → SMTP credentials
  4. Скопируйте SMTP-пароль

📦 Amazon SES

MAIL_HOST=email-smtp.us-east-1.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=your_ses_smtp_username
MAIL_PASSWORD=your_ses_smtp_password
MAIL_ENCRYPTION=tls
  1. Перейдите в AWS SES Console
  2. Верифицируйте домен
  3. Перейдите в SMTP Settings → Create SMTP Credentials
  4. Выйдите из режима sandbox для production

📨 SendGrid

MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=your_sendgrid_api_key
MAIL_ENCRYPTION=tls

💡 Примечание: Имя пользователя буквально apikey (не ваш email). Пароль — это ваш API-ключ SendGrid.

✉️ Postmark

MAIL_HOST=smtp.postmarkapp.com
MAIL_PORT=587
MAIL_USERNAME=your_postmark_server_api_token
MAIL_PASSWORD=your_postmark_server_api_token
MAIL_ENCRYPTION=tls

🔵 ZOHO Mail

MAIL_HOST=smtp.zoho.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your_zoho_password
MAIL_ENCRYPTION=tls

🧪 Mailtrap (только для тестирования!)

MAIL_HOST=sandbox.smtp.mailtrap.io
MAIL_PORT=587
MAIL_USERNAME=your_mailtrap_username
MAIL_PASSWORD=your_mailtrap_password
MAIL_ENCRYPTION=tls

⚠️ Mailtrap только для разработки/тестирования. Письма перехватываются в вашем inbox Mailtrap и никогда не доставляются реальным получателям.


🧪 Тестирование email

Через панель администратора

  1. Перейдите в Администратор → Настройки → Email
  2. Нажмите Отправить тестовое письмо
  3. Проверьте inbox

Через командную строку

php artisan tinker
Mail::raw('Test email from FeedbackPulse', function ($message) {
$message->to('[email protected]')->subject('SMTP Test');
});

📨 Письма, отправляемые FeedbackPulse

ПисьмоКогдаПолучатель
ПриветственноеРегистрация нового арендатораАдминистратор арендатора
Приглашение в командуАдминистратор приглашает участникаEmail приглашённого
Изменение планаИзменение подпискиАдминистратор арендатора
Новое обращениеПолучена новая обратная связьАдминистратор/сотрудник арендатора
Email-дайджестЕжедневное/еженедельное расписаниеАдминистратор арендатора
Запланированный отчётЕжедневно/еженедельно/ежемесячноАдминистратор арендатора
Предупреждение об использовании90%+ от лимита планаАдминистратор арендатора
Сброс пароляПользователь запрашивает сбросЗапросивший пользователь
Верификация emailНовая регистрацияНовый пользователь
OTP-кодФорма обратной связи с OTPКонечный пользователь, отправляющий обратную связь

🐛 Устранение неполадок email

ПроблемаРешение
Письма не отправляютсяПроверьте настройки SMTP в .env. Попробуйте MAIL_MAILER=log для теста без SMTP. Проверьте storage/logs/laravel.log.
Письма попадают в спамДобавьте записи SPF, DKIM и DMARC в DNS вашего домена. Используйте надёжного SMTP-провайдера.
«Connection timed out»Порт 587/465 может быть заблокирован вашим хостинг-провайдером. Попробуйте другой порт или провайдера.
Ошибка Gmail «Less secure apps»Используйте Пароль приложения. Смотрите раздел Gmail выше.
Задержка писемЕсли используете QUEUE_CONNECTION=database, убедитесь, что работник очереди запущен.

⏭️ Следующие шаги