私のDrupalサイトからの自動送信メールには、コアシステムメール、ubercart、webform、ルールなどがあります。
その理由は、私は本番サイトのコピーであるテストサイトも持っているからです。また、テスト用のメールから誤ってメールが送信されないように、すべての送信メールを無効にしたいと思います。
「phpmailer」「mime mail」「mail editor」モジュールをインストールしました。
これを行うすぐに使える方法はありますか?
Maillog module は、まさにこの目的のためのものです。
Maillogを使用すると、デバッグのためにすべてのメールを簡単に記録できます。メールが送信されないようにすることは可能であるため、他のモジュールやdrupalコアのメール機能をテストするために追加のメールサーバーを用意する必要はありません。
Drupalビジネスロジックを本番サイトとして正確に実行することを望んでいるように見えます。メールの送信(または「メールのログ」)はメールサーバーの仕事です...したがって、実際には電子メールを送信しないようにサーバーに指示するだけです。
Php.ini sendmail_path
値を使用して、これを開発サーバー構成値にすることができます。この Stackoverflow の投稿から、php.iniの設定方法を確認できます。 vhostエントリに直接入ることはできませんが、ローカル開発環境のApache構成のディレクティブにこのように入る場合があります ServerFault post 。
この方法では、Drupalに何をしても、サーバーがメールを送信することはありません。
<VirtualHost *:80>
Standard stuff goes here
<Directory /dir/to/your/web/root>
php_admin_value sendmail_path "tee mail.out > /dev/null"
</Directory>
</VirtualHost>
この正確な目的のための別の素晴らしいモジュールは Reroute Email です。アクティブなときにすべてのメールを送信するメールアドレスを定義できます。
このモジュールは、Drupalサイトからのすべての送信メールをインターセプトし、事前定義された構成可能なメールアドレスに転送します。
これは、Drupalサイトからメールを送信してユーザーに配信したくない場合に便利です。たとえば、開発を目的としてライブサイトをテストサイトにコピーする場合、元のサイトの実際のユーザーにメールを送信したくない場合や、送信されたメールのフォーマット、フッターなどを確認したい場合。
これは、Drupal 5.x以降で利用可能な)hook_mail_alter()が実行できる機能の優れたデモンストレーションでもあります。
/**
* Implements hook_mail_alter
* it will alter all email sent by drupal
*/
function modulename_mail_alter(&$message) {
// 'To' field as ''(blank) so it wont send any email
$message['to'] = '';
}
同じ結果を達成するための他のいくつかの可能性を一覧表示するこの素敵なコミュニティページもあります。 開発またはテストのためのメール処理の管理
MailSystem もあり、送信メールをTestingSystemにルーティングできます。