Easy Email

Drupal向けのシンプルなHTMLメールシステムで、メールテンプレート、Token置換、添付ファイル、メールログ、システムメールのオーバーライド機能を提供します。

easy_email
6,679 sites
76
drupal.org

インストール

Drupal 11, 10 v3.0.7
composer require 'drupal/easy_email:^3.0'

概要

Easy Emailは、堅牢な機能を提供しながら、できるだけシンプルに設定できるように設計されたHTMLメールシステムです。DrupalのメールMIME処理に関する詳細な知識や大幅な設定が必要な他のHTMLメールモジュールとは異なり、Easy Emailは適切なデフォルト設定ですべてを即座に処理します。

このモジュールは、Tokenを使用した設定可能なメールテンプレート、To/CC/BCC宛先のサポート、カスタマイズ可能な送信者情報、HTMLおよびプレーンテキスト本文オプション、Tokenまたはファイルパスを使用した動的な添付ファイル、ユーザーアカウントとの紐付けを含む包括的なメールログなど、完全なメール管理ソリューションを提供します。Entityベースのアーキテクチャにより、開発者は標準的なライフサイクルフックを使用してメール処理を変更または拡張できます。

メールテンプレートはFieldを追加可能で、特定のユースケース向けにカスタムFieldを追加できます(例:Drupal Commerceの注文関連トークンにアクセスするためのEntity参照Fieldの追加)。このモジュールには、CoreおよびContribモジュールのメールをオーバーライドするサブモジュール(Easy Email Overrides)とDrupal Commerce統合用のサブモジュール(Easy Email Commerce)が含まれています。

Features

  • 宛先、送信者、件名、本文、添付ファイルを含むすべてのメールフィールドでのToken置換
  • 自動ユーザーアカウント紐付け機能を備えたTo、CC、BCC宛先のサポート
  • テンプレートごとにカスタマイズ可能な送信者名、アドレス、返信先アドレス
  • オプションの受信トレイプレビューテキスト付きHTML本文(本文内では非表示だがメールクライアントの受信トレイプレビューで表示)
  • 手動入力またはHTMLからの自動生成が可能なオプションのプレーンテキスト本文
  • セキュリティ検証付きのToken、相対パス、またはURIを使用した動的添付ファイル
  • 完全なコンテンツプレビュー付きの送信済みメールをすべて含む包括的なメールログ
  • 簡単な追跡のためのユーザーアカウントへのログメール自動紐付け
  • 標準的なDrupalライフサイクルフック(hook_entity_presave、hook_entity_updateなど)をサポートするEntityベースのアーキテクチャ
  • ユースケースごとにカスタムFieldを追加できるFieldable対応メールテンプレート
  • 重複メールを防止するユニークキーパターン
  • 設定可能な保持期間に基づく自動メール削除
  • 送信前にテンプレートをプレビューするメールプレビュー機能
  • リビジョンの復元および削除機能を備えたメールEntityのリビジョンサポート
  • パスホワイトリスト、拡張子/MIMEタイプブロック、サイズ制限を含む添付ファイルセキュリティ制御
  • HTMLメール配信のためのDrupal Symfony MailerまたはSymfony Mailer Liteとの統合
  • 手動メール削除用のDrushコマンド
  • CoreおよびContribモジュールのメールをEasy Emailテンプレートに置き換えるオーバーライドシステム
  • 注文関連メールテンプレート用のDrupal Commerce統合

Use Cases

トランザクションメール通知

注文確認、パスワードリセット、アカウント更新などの一般的なトランザクション通知用のメールテンプレートを作成します。Tokenを通じて関連するEntityデータにアクセスするためにテンプレートにEntity参照Fieldを追加します。完全なメール監査証跡を維持するために自動保存を設定します。

Drupal Coreユーザーメールの置き換え

Easy Email Overridesサブモジュールを有効にして、CoreのユーザーモジュールメールをカスタムHTMLテンプレートに置き換えます。Drupalのセキュリティ機能を維持しながら、パスワードリセットメール、ウェルカムメール、アカウント有効化通知、その他のユーザー関連通信をオーバーライドします。

Commerce注文領収書

Easy Email Commerceサブモジュールを有効にして、ブランド化されたHTML注文領収書メールを作成します。Commerce固有のTokenを通じて注文データ、明細行、顧客情報、価格にアクセスします。ストアごとまたは注文タイプごとにメールテンプレートを設定します。

マーケティングキャンペーンメール

キャンペーン追跡用のカスタムFieldを含むマーケティングコミュニケーション用テンプレートを作成します。ユニークキーパターン機能を使用して重複送信を防止します。メールログを活用して配信を追跡し、受信者ユーザーアカウントにメールを紐付けます。

システム通知メール

管理者通知、コンテンツモデレーションアラート、システムステータスメール用のテンプレートを構築します。動的コンテンツにToken置換を使用し、データベース増大を管理するために自動削除を設定します。

複数受信者へのパーソナライズメール

受信者ごとに評価される安全でないTokenを使用して、複数の受信者にパーソナライズされたメールを送信します。モジュールはユーザーごとのパーソナライズが必要な場合にメールを自動的に分割しながら、ログ用の単一のメールレコードを維持します。

Tips

  • ユニークキーパターンを使用して重複メールの送信を防止 - EntityのIDとタイムスタンプを組み合わせて確実な重複排除を実現
  • Token経由で関連データにアクセスするためにテンプレートにカスタムEntity参照Fieldを追加(例:CommerceメールのOrder参照)
  • テンプレートごとに選択的にメールログを有効化 - 大量のテンプレートでは永続保存が不要な場合がある
  • 送信前にToken置換をテストするためにプレビュー機能を使用
  • 添付ファイルセキュリティを慎重に設定 - デフォルトのブロック拡張子は一般的な攻撃ベクトルから保護
  • Cronタイムアウトを避けるためにオフピーク時間帯にDrushコマンドを使用して一括削除
  • テンプレートごとのスタイリング用にテーマテンプレートサジェストを作成(例:easy-email-body-html--[bundle].html.twig)

Technical Details

Admin Pages 12
メールテンプレート /admin/structure/email-templates/templates

メールテンプレートを管理します。メールテンプレートの表示、作成、編集、削除、プレビューを行います。各テンプレートは、メールの種類ごとにデフォルトの宛先、送信者情報、件名、本文コンテンツ、添付ファイル、保存設定を定義します。

メールテンプレートを追加 /admin/structure/email-templates/templates/add

新しいメールテンプレートを作成します。初期フォームではラベルとマシン名のみを入力します。保存後、完全なテンプレート設定フォームが表示されます。

メールテンプレートを編集 /admin/structure/email-templates/templates/{easy_email_type}/edit

宛先、送信者、コンテンツ、添付ファイル、保存設定を含むメールテンプレートのすべての側面を設定します。

メールテンプレートをプレビュー /admin/structure/email-templates/templates/{easy_email_type}

メールテンプレートがどのようにレンダリングされるかをプレビューします。ヘッダー、受信トレイプレビュー、HTML本文、プレーンテキスト本文をリサイズ可能なセクションを持つインタラクティブなプレビューインターフェースで表示します。

設定 /admin/structure/email-templates/settings

自動削除、添付ファイルセキュリティ、レポート表示を含むグローバルEasy Email設定を構成します。

テーマ設定 /admin/structure/email-templates/theme

Easy Emailテーマ統合を構成します。メールレンダリング用の専用テーマを有効にできます。

メール /admin/reports/email

ウェブサイトから送信されたすべての保存済みメールのログを表示します。メールID、ラベル、テンプレートタイプ、宛先、作成日、送信ステータスを一覧表示し、表示/編集/削除操作を提供します。

メールを表示 /admin/reports/email/{easy_email}

ステータス、送信時刻、ヘッダー、受信トレイプレビュー、HTML本文、プレーンテキスト本文、添付ファイルを含む送信済みまたは未送信メールの完全な詳細を表示します。

メールを作成 /admin/reports/email/add/{easy_email_type}

テンプレートを使用してメールを手動で作成および送信します。すべてのテンプレートフィールドをカスタマイズし、オプションでメールを送信または保存できます。

メールオーバーライド /admin/structure/email-templates/overrides

CoreおよびContribモジュールのメールをEasy Emailテンプレートに置き換えるメールオーバーライドを管理します。リストビューには編集/削除操作付きの設定済みオーバーライドが表示されます。

メールオーバーライドを追加 /admin/structure/email-templates/overrides/add

システムメールをEasy Emailテンプレートに置き換える新しいオーバーライドを作成します。

メールオーバーライドを編集 /admin/structure/email-templates/overrides/{easy_email_override}/edit

メールオーバーライドのパラメータマッピングとフィールドコピーを設定します。

権限 16

削除設定と添付ファイルセキュリティを含むグローバルメール設定へのアクセスを許可

メールテンプレートを作成、編集、または削除するための管理フォームへのアクセスを許可

すべてのメールテンプレートの一覧ページへのアクセスを許可

新しいメールテンプレートの作成を許可

既存のメールテンプレートの編集を許可

メールテンプレートの削除を許可

メールテンプレートのプレビューを許可

メールEntityの手動作成を許可

メールEntityを設定するための管理フォームへのアクセスを許可

ログからのメールEntityの削除を許可

メールEntityの編集を許可

現在のユーザーが作成したメールEntityの表示を許可

作成者に関係なくすべてのメールEntityの表示を許可

メールEntityのリビジョン履歴の表示を許可

メールEntityを以前のリビジョンに復元することを許可。リビジョン表示と編集権限が必要です。

メールEntityリビジョンの削除を許可。リビジョン表示と削除権限が必要です。

Hooks 1
hook_easy_email_type_delete

Easy Emailテンプレートタイプの削除に対応します。easy_email_overrideが関連するオーバーライドをクリーンアップするために使用します。

Drush Commands 1

テンプレート設定または指定した条件に基づいてEasy Email Entityを削除

Troubleshooting 6
メールが送信されない

Drupal Symfony Mailer LiteまたはDrupal Symfony Mailerがインストールされ、設定されていることを確認してください。メールシステムが適切に設定されていることを確認してください。/admin/reports/emailでメールログを確認し、メールが作成されているが送信されていないかどうかを確認してください。

添付ファイルが機能しない

/admin/structure/email-templates/settingsでグローバル添付ファイル設定を確認してください。パスがallowed_attachment_pathsリストに含まれていることを確認してください。ファイル拡張子とMIMEタイプがブロックリストに含まれていないことを確認してください。指定されたパスにファイルが存在し、読み取り可能であることを確認してください。

Tokenが置換されない

テンプレート編集フォームのTokenブラウザを使用してTokenが正しいことを確認してください。メール作成時に関連するEntity参照Fieldが入力されていることを確認してください。Tokenモジュールがインストールされ、有効になっていることを確認してください。

オーバーライドが機能しない

Easy Email Overridesサブモジュールが有効になっていることを確認してください。/admin/structure/email-templates/overridesでオーバーライドが設定されていることを確認してください。パラメータマッピング設定を確認してください。個別のオーバーライドはモジュールレベルのオーバーライドより優先されます。

メールログが大きくなりすぎる

テンプレート設定で自動削除を設定してください(メールの保存 > 自動削除)。グローバル設定でCronベースの削除を有効にしてください。手動削除にはDrushコマンドを使用してください:drush easy_email:purge_emails

プレーンテキスト本文が生成されない

テンプレート設定で「HTML本文からプレーンテキスト本文を生成」を有効にしてください。HTML本文フィールドにコンテンツが含まれていることを確認してください。メーラーモジュールでhtml2text変換が適切に機能していることを確認してください。

Security Notes 7
  • 添付ファイルパスはホワイトリストに対して検証される - allowed_attachment_pathsパターンに一致するファイルのみが添付可能
  • 危険なファイル拡張子(exe、php、jsなど)はメールベースの攻撃を防ぐためにデフォルトでブロック
  • MIMEタイプ検証は拡張子チェックを超える追加のセキュリティレイヤーを提供
  • 最大添付ファイルサイズ制限はリソース枯渇攻撃を防止
  • メールEntityアクセスは詳細な権限で制御 - マルチユーザーサイトでは慎重に設定
  • ユニークキーパターンは重複送信を拒否することでメールフラッディングを防止
  • レンダリング前にプレーンテキスト本文コンテンツにXSSフィルタリングを適用