Fedora 8 でrailsアプリからメールが送信できない
Fedora8にバージョンアップした後、railsアプリからメールが送信できないことがあり、対処した。なお、MTAは、postfixです。
1. 一度、selinuxをpermissiveモードにする。後ほど元に戻すこと。
$ setenforce 0 # 実際にrailsでメールを送信 ....
2. selinuxのポリシーを生成
$ mkdir /etc/selinux/local $ cd /etc/selinux/local $ audit2allow -a -l -r > local.te
3. local.teの先頭行にモジュール名を設定
$ vi local.te policy_module(local, 1.0.0) require { type sendmail_t; type postfix_public_t; type postfix_spool_maildrop_t; type postfix_postdrop_exec_t; class process setrlimit; class file { rename write getattr setattr read create execute execute_no_trans }; class fifo_file { write getattr }; class dir { write remove_name search add_name }; } #============= sendmail_t ============== allow sendmail_t postfix_postdrop_exec_t:file { read execute execute_no_trans }; allow sendmail_t postfix_public_t:dir search; allow sendmail_t postfix_public_t:fifo_file { write getattr }; allow sendmail_t postfix_spool_maildrop_t:dir { write remove_name search add_name }; allow sendmail_t postfix_spool_maildrop_t:file { rename write getattr setattr read create }; allow sendmail_t self:process setrlimit;
4. コンパイル
$ make -f /usr/share/selinux/devel/Makefile
5. インストール
$ semodule -i local.pp
6. selinuxのモードを元に戻す。
$ setenfoce 1
7. selinuxのモードを確認する
$ getenforce Enforcing
8. railsアプリケーションからメールを送信する
無事、メールが送信できましたか?