mail()での送信が失敗する

カテゴリ フォーム コアバージョン 7.15 関連モジュール system

メール送信ができない事があった場合、これをチェックしましょう。

コメント

ユーザー actbrain の写真

サーバーの設定のよっては、drupalのせいではなく、mail()関数によるメール送信が出来ない状況に置かれる事があります。
例えば、簡単な例題スクリプト)
<?php
// 本文
$message = "Line 1\nLine 2\nLine 3";

// 1 行が 70 文字を超える場合のため、wordwrap() を用いる
$message = wordwrap($message, 70);

// 送信する
echo mail('user1@act-brain.co.jp', 'My Subject', $message)? 'Success': 'Fail';
?>
なようなものを作成して事項してみてもメールが飛ばない場合、
そして、maillog内に
「postfix/sendmail[12934]: fatal: chdir /var/spool/postfix: Permission denied」というような記述があったら、selinuxを疑ってみます。

SSHより
# setenforce 0
一時的にselinuxを無効にしたうえで再度上記例題スクリプトを実行してみましょう。
これでメールが飛んだら、selinuxのせいです。
上記のコマンドはselinuxを一時的に無効にしているだけなので、サーバーが再起動した場合、元に戻ってしまいます。

恒久的な対処としては、
/etc/selinux/config 内の 動作モードに関する記述を変更する必要があります。
SELINUX=enforcing

SELINUX=permissive

上記の対処は、SELINUXが必要ない場合の処置です。
何らかの形でSELINUXが必要な場合は、上記対処は不適切です。状況に応じた設定変更が必要になります。

ユーザー actbrain の写真

SELinuxを有効にしたまま、メール送信のみ許可するには以下設定になります。

# setenforce 1 …SELinuxを有効化
# getsebool httpd_can_sendmail
httpd_can_sendmail --> off  …パラメータ確認
# setsebool -P httpd_can_sendmail on …パラメータ変更
# getsebool httpd_can_sendmail
httpd_can_sendmail --> on  …パラメータ変更確認

ページ

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ Core Ver. 関連モジュール降順で並び替える タイトル
ユーザの管理 7.15 Devel 簡単に指定ユーザにログインしなおす方法
コンテンツの管理 8.9.x Dialog Modal Canvas drupal 8 の標準機能のダイアログ/ポップアップを表示する方法
Messages 7.34 Disable messages 標準(コア)が表示する特定のメッセージ非表示にしたい
アップデート 7.28 DisableMessages モジュールのアップデートガイダンスを非表示にしたい
コンテンツの作成 8.9.x Display sweet, Views, Twig Tweak, Views field formatter テーマに頼らず コンテンツのフィールドとしてViewsを埋め込み表示する方法
アップデート 7.34 Distribution(Commerce Kickstart) drushでcommerce_kickstartのアップデートに失敗する
コンテンツの作成 8.4x Download とにかく何でもコンテンツをダウンロードさせる方法
アップデート 7.50 Download count DOWNLOAD MODULEページでダウンロードが失敗することがある
サイトの構築 7.59 Drupal.ajax drupal 7 で Uncaught TypeError: Drupal.ajax is undefined となったときの対応方法
PHP 8.9.x drush drush sql:cli < が機能しない場合の対処
drush 7.54 Drush Drushでdrupalサイトをインストールする方法
Migrate 9.x drush config Upgrade source(環境) を 変更したときにやるべきこと
サイトの構築 7.34 ECK Entityの使い方について
コンテンツの管理 8.4x Entity EntityをPropertyで探す(クエリする)方法
言語 7.14 Entity Translation 各フィールドのラベルの多言語切り替え漏れ(接頭子、接尾子)
言語 7.15 Entity Translation デフォルトの言語 - Entity Translation
言語 7.15 Entity Translation 各フィールドのラベルの多言語切り替え漏れ(フィールド・ラベル)
言語 7.15 Entity Translation nodeのEntity Translation
コンテンツの作成 7.34 Entityreference prepopulate 新規ノード作成時のリファレンス方法
タクソノミー 7.15 Entity_Trarnslation Taxonomy TaxonomyのEntity Translation

ページ