Mime Mail
埋め込み画像や添付ファイル付きのHTMLメールを送信するMIME Mailコンポーネントモジュール。テーマ統合とユーザーごとのプレーンテキスト設定をサポートします。
mimemail
インストール
composer require 'drupal/mimemail:^2.0'
概要
Mime Mailは、DrupalからMIMEエンコードされたHTMLメールを埋め込み画像やファイル添付付きで送信できる包括的なメールモジュールです。他のモジュール向けのAPIを提供するコンポーネントモジュールとして機能するとともに、独自の設定インターフェースも備えています。
このモジュールは、メッセージ本文をMIMEエンコードし、ローカル画像を自動的にMIME添付ファイルとして埋め込み、テーマのスタイルシートを含めることで一貫したブランディングを実現し、標準的なDrupalメールをリッチなHTMLメールに変換します。受信者がプレーンテキストを好む場合(ユーザーごとにブールフィールドで設定可能)、HTMLコンテンツは自動的にプレーンテキストに変換されます。
Mime Mailは、送信モジュールとメールキーに基づくサジェスチョンを持つテンプレートテーマをサポートしており、サイトビルダーが特定の通知タイプに対してカスタマイズされたメールテンプレートを作成できます。また、GmailやOutlook 2007などのメールクライアントとの互換性を確保するため、オプションのCSSインライン化機能(mimemail_compressサブモジュール経由)も提供しています。
Features
- 埋め込み画像とファイル添付を完全サポートしたMIMEエンコードHTMLメールを送信
- テーマのCSSスタイルシートを自動的に含めるか、メールスタイリング用の専用mail.cssファイルを使用
- ユーザープロファイルの設定可能なブールフィールドによるユーザーごとのプレーンテキスト設定をサポート
- モジュールとメールキーに基づくサジェスチョンを持つテーマ対応メールテンプレートを提供(mimemail-message--[module]--[key].html.twig)
- ローカル画像URLを自動的にContent-ID参照に変換してインライン埋め込み
- MIMEタイプ検出によるファイルパスと動的コンテンツ添付の両方をサポート
- 表示名とUTF-8エンコーディングを含むRFC2822準拠のメールアドレスフォーマットを処理
- メールサイズを削減するため画像を埋め込まずに外部リンクとするオプション
- サイト全体の一貫性のための送信者名とメールアドレスのオーバーライド設定
- メールベースのワークフロー向け受信メッセージ処理機能
Use Cases
ブランド化されたHTMLニュースレターの送信
テーマ内のカスタムmail.cssファイルとともにMime Mailを使用して、視覚的に一貫したニュースレターを送信します。モジュールはテーマのスタイルを自動的に含め、オフライン表示用に画像をメールに直接埋め込むことができます。
添付ファイル付きトランザクションメール
PDF添付ファイル付きの注文確認、請求書、レポートを送信します。hook_mail()のattachmentsパラメータを使用して、パスによるファイルまたは動的に生成されたコンテンツを含めます。
ユーザー設定のメールフォーマット
ユーザープロファイルにブールフィールド(例:「プレーンテキストメールを希望」)を作成し、Mime Mailがこの設定を尊重するよう構成します。有効にしたユーザーはすべてのメールのプレーンテキストバージョンを受け取ります。
モジュール固有のメールテンプレート
mimemail-message--commerce--order-receipt.html.twigのような対象を絞ったメールテンプレートを作成して、特定のメールタイプの外観をカスタマイズしながら、その他には一貫した基本テンプレートを維持できます。
メール設定のテスト
Mime Mail Exampleサブモジュールを有効にして/admin/config/system/mimemail/mimemail_exampleのテストフォームにアクセスし、添付ファイル付きのテストメールを送信してメール設定を確認できます。
Tips
- ウェブサイトの外観に影響しないメール専用のスタイリングのために、テーマのルートディレクトリにmail.cssファイルを作成してください
- 特定のメールタイプ用のターゲットテンプレートを作成するにはmimemail-message--[module]--[key].html.twigの命名パターンを使用してください
- 画像を埋め込む際は、確実な埋め込みのためにフルURLではなくpublic://image.jpgのようなストリームラッパーを使用してください
- 本番環境にデプロイする前にMime Mail Exampleサブモジュールでメールをテストしてください
- メールサイズを削減し配信性を向上させるため、ニュースレターには「画像をリンクのみにする」オプションを検討してください
Technical Details
Admin Pages 1
/admin/config/system/mimemail
送信者情報、スタイリングオプション、高度な機能を含むMime Mailのグローバル設定ページ。
権限 2
Hooks 2
hook_mail
標準的なDrupal mail hook。Mime Mail使用時、$params配列にメールフォーマットを制御するための追加キーを含めることができます。
hook_mail_alter
送信前に送信メールをモジュールが変更できるようにします。添付ファイルの追加、ヘッダーの変更、メッセージフォーマットの変更に使用できます。
Troubleshooting 5
Mail Systemがフォーマッターと送信者の両方で「Mime Mail mailer」を使用するよう設定されていることを確認してください。Mime Mail設定で「プレーンテキストメールのみ送信」が無効になっていることを確認してください。
画像には絶対URLではなく相対URLまたはストリームラッパー(public://)を使用してください。「画像をリンクのみにする」が無効になっていることを確認してください。送信者が「send arbitrary files」権限を持っていない限り、パブリックファイルディレクトリ内のファイルのみ埋め込み可能です。
一部のメールクライアント(Gmail、Outlook 2007)はインラインCSSのみをサポートしています。mimemail_compressモジュールを有効にしてCSSをインラインスタイルに変換することを検討してください。mail.cssファイルがテーマディレクトリに存在することを確認してください。
SMTPソリューションがインストールされていない場合は、Mime Mail設定で「シンプルなアドレスフォーマットを使用」を有効にしてください。WindowsサーバーはRFC2822フォーマットのアドレスに特別な処理が必要です。
「メールフォーマット」設定を確認し、選択したテキストフォーマットで「URLをリンクに変換」フィルターが十分な最大リンク長で有効になっていることを確認してください。
Security Notes 4
- 「send arbitrary files」権限はsettings.phpを含むサーバー上の任意のファイルへのアクセスを許可します - 非常に信頼できるロールにのみ付与してください
- 受信メッセージ処理(高度な設定)は、セキュリティへの影響を理解し、検証を適切に設定している場合にのみ有効にしてください
- 受信メッセージ用のメッセージ検証キーは秘密にし、漏洩した場合は変更してください
- ファイル添付はセキュリティのためデフォルトでパブリックファイルディレクトリに制限されています - これは意図的な仕様です