メール・SMTPの設定
FeedbackPulseはさまざまなトランザクションメールを送信します。適切なメール設定は以下に重要です:
- 新規テナントへのウェルカムメール
- チーム招待リンク
- パスワードリセットメール
- メールOTP確認(フィードバックフォーム用)
- 日次・週次ダイジェスト
- スケジュールレポート
- 使用量アラート
- プラン変更通知
⚙️ 設定方法
方法1:管理パネル経由(推奨)
- スーパー管理者としてログイン
- 管理者 → 設定 → メール に移動
- SMTPの詳細を入力
- テストメールを送信をクリックして確認
- 保存
方法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は通常のパスワードではなく、アプリパスワードが必要です。
- Googleアカウントのセキュリティ に移動
- 2段階認証を有効化(必須)
- アプリパスワード → 「メール」を選択 → 生成
- 生成された16文字のパスワードを使用
🔴 Gmailの制限: 1日500通(個人)または2,000通(Workspace)。本番SaaSには推奨しません。
🔫 Mailgun
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your_mailgun_smtp_password
MAIL_ENCRYPTION=tls
- Mailgun でサインアップ
- ドメインを追加 → DNSレコードを確認
- 送信 → ドメイン設定 → SMTPクレデンシャル に移動
- 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
- AWS SESコンソール に移動
- ドメインを確認
- SMTP設定 → SMTPクレデンシャルを作成 に 移動
- 本番環境ではサンドボックスモードを解除
📨 SendGrid
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=your_sendgrid_api_key
MAIL_ENCRYPTION=tls
💡 注: ユーザー名は文字通り
apikey(メールアドレスではない)。パスワードはSendGrid APIキーです。
✉️ 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は開発・テスト専用です。 メールはMailtrapの受信ボックスに取り込まれ、実際の受信者には届きません。
🧪 メールのテスト
管理パネル経由
- 管理者 → 設定 → メール に移動
- テストメールを送信をクリック
- 受信ボックスを確認
コマンドライン経由
php artisan tinker
Mail::raw('Test email from FeedbackPulse', function ($message) {
$message->to('[email protected]')->subject('SMTP Test');
});
📨 FeedbackPulseが送信するメール
| メール | タイミング | 受信者 |
|---|---|---|
| ウェルカム | 新規テナントが登録 | テナント管理者 |
| チーム招待 | 管理者がチームメンバーを招待 | 招待者のメール |
| プラン変更 | サブス クリプションが変更 | テナント管理者 |
| 新規投稿アラート | 新しいフィードバックを受信 | テナント管理者・スタッフ |
| メールダイジェスト | 日次・週次スケジュール | テナント管理者 |
| スケジュールレポート | 日次・週次・月次 | テナント管理者 |
| 使用量アラート | プラン制限の90%以上 | テナント管理者 |
| パスワードリセット | ユーザーがリセットをリクエスト | リクエストしたユーザー |
| メール確認 | 新規登録 | 新規ユーザー |
| OTPコード | OTP付きフィードバックフォーム | フィードバックを送信するエンドユーザー |
🐛 メールのトラブルシューティング
| 問題 | 解決策 |
|---|---|
| メールが送信されない | .env のSMTP設定を確認。SMTPなしでテストするには MAIL_MAILER=log を試す。storage/logs/laravel.log を確認。 |
| メールがスパムに入る | ドメインのDNSにSPF、DKIM、DMARCレコードを追加。信頼できるSMTPプロバイダーを使用。 |
| 「接続タイムアウト」 | ホスティングプロバイダーによってポート587/465がブロックされている可能性があります。別のポートまたはプロバイダーを試してください。 |
| Gmail「安全性の低いアプリ」エラー | 代わりにアプリパスワードを使用。上記のGmailセクションを参照。 |
| メールの遅延 | QUEUE_CONNECTION=database を使用している場合、キューワーカーが実行されていることを確認。 |