PHP mb_send_mail EC2 mail送れない。
お急ぎのかたは、目次:1=>4.5.6.7へ
初歩的な事かもしれないですが、ハマって色々触ったのでメモ
構成 AWS利用
・ EC2インスタンスを2台立ている。
・ ELBを利用して振り分けている。
問題
片方のServerでMail送信時エラー発生している。
[000] [error] [client 00.0.0.00] exec exception:\n
sendmail: fatal: config variable inet_interfaces: host not found: localhost
問題確認
とりあえず設定ファイルを確認
1.grepでpostconf設定内容確認
[000/root]$ postconf | grep size
berkeley_db_create_buffer_size = 16777216
berkeley_db_read_buffer_size = 131072
body_checks_size_limit = 51200
bounce_size_limit = 50000
header_size_limit = 102400
mailbox_size_limit = 51200000
message_size_limit = 10240000
tcp_windowsize = 0
[000 /root]$ postconf | grep size
berkeley_db_create_buffer_size = 16777216
berkeley_db_read_buffer_size = 131072
body_checks_size_limit = 51200
bounce_size_limit = 50000
header_size_limit = 102400
postconf: fatal: config variable inet_interfaces: host not found: localhost
設定値がおかしい!
とりあえず、
2.設定ファイルの差分とってみる。
[user@ip-00-0-0-000 ~]$ if diff <(ssh -i *****.pem [email protected] cat /etc/postfix/main.cf) <(ssh -i *****.pem [email protected] cat /etc/postfix/main.cf) ; then
> echo yes
> else
> echo no
> fi
yes
設定ファイル内容は同じ。
ちなみにPHP.iniも原因ではない。
[0000 /root]$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
[user@ip-00-0-0-000 ~]$ if diff <(ssh -i *****.pem [email protected] cat /etc/php.ini) <(ssh -i *****.pem [email protected] cat /etc/php.ini) ; then
> echo no
> else
> echo yes
> fi
453c453
< error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING
---
> error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_WARNING & ~E_NOTICE
yes
3.プロセスの確認
[000 /root]$ /etc/init.d/postfix status
-b dead but pid file exists
[000 /root]$ ps aux | grep postfix
root 18691 0.0 0.0 103240 868 pts/0 S+ 14:44 0:00 grep postfix
プロセスが実行されて無い?
[000 /root]$ sudo /etc/init.d/postfix stop
Shutting down postfix: [ FIELD ]
[000 /root]$ sudo /etc/init.d/postfix start
Starting postfix: [ FIELD ]
???
4. ???
あれ結局エラーってなんだっけ?
sendmail: fatal: config variable inet_interfaces: host not found: localhost
localhostさんは誰ですか?
[000 /root]$ ping localhost
ping: unknown host localhost
5.localhostの設定確認
[000 /root]$ vi /etc/hosts
000.0.0.0 localhost.localdomain ap1
::1 localhost6.localdomain6 localhost6
00.0.0.000 db
localhost居ないじゃん!
6.localhostの設定
[000 /root]$ vi /etc/hosts
000.0.0.0 localhost.localdomain ap1 localhost
::1 localhost6.localdomain6 localhost6
00.0.0.000 db
7.postfix再起動
[000 /root]$ sudo /etc/init.d/postfix stop
Shutting down postfix: [ OK ]
[000 /root]$ sudo /etc/init.d/postfix start
Starting postfix: [ OK ]
直ったー!
8.おまけ
mail_log確認
[000 /root]$ tail /var/log/maillog
postfix_commondの内容確認
[000 /etc/init.d]$ cat postfix
----------
RETVAL=0
prog="postfix"
lockfile=/var/lock/subsys/$prog
pidfile=/var/spool/postfix/pid/master.pid
ALIASESDB_STAMP=/var/lib/misc/postfix.aliasesdb-stamp
# Script to update chroot environment
CHROOT_UPDATE=/etc/postfix/chroot-update
status -p $pidfile -l $(basename $lockfile) -b /usr/libexec/postfix/master master >/dev/null 2>&1
running=$?
conf_check() {
[ -x /usr/sbin/postfix ] || exit 5
[ -d /etc/postfix ] || exit 6
[ -d /var/spool/postfix ] || exit 5
}
make_aliasesdb() {
if [ "$(/usr/sbin/postconf -h alias_database)" == "hash:/etc/aliases" ]
then
# /etc/aliases.db may be used by other MTA, make sure nothing
# has touched it since our last newaliases call
[ /etc/aliases -nt /etc/aliases.db ] ||
[ "$ALIASESDB_STAMP" -nt /etc/aliases.db ] ||
[ "$ALIASESDB_STAMP" -ot /etc/aliases.db ] || return
/usr/bin/newaliases
touch -r /etc/aliases.db "$ALIASESDB_STAMP"
else
/usr/bin/newaliases
fi
}
start() {
[ "$EUID" != "0" ] && exit 4
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 1
conf_check
# Start daemons.
echo -n $"Starting postfix: "
make_aliasesdb >/dev/null 2>&1
[ -x $CHROOT_UPDATE ] && $CHROOT_UPDATE
/usr/sbin/postfix start 2>/dev/null 1>&2 && success || failure $"$prog start"
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $lockfile
echo
return $RETVAL
}
stop() {
[ "$EUID" != "0" ] && exit 4
conf_check
# Stop daemons.
echo -n $"Shutting down postfix: "
/usr/sbin/postfix stop 2>/dev/null 1>&2 && success || failure $"$prog stop"
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f $lockfile $pidfile
echo
return $RETVAL
}
reload() {
conf_check
echo -n $"Reloading postfix: "
[ -x $CHROOT_UPDATE ] && $CHROOT_UPDATE
/usr/sbin/postfix reload 2>/dev/null 1>&2 && success || failure $"$prog reload"
RETVAL=$?
echo
return $RETVAL
}
abort() {
conf_check
/usr/sbin/postfix abort 2>/dev/null 1>&2 && success || failure $"$prog abort"
return $?
}
flush() {
conf_check
/usr/sbin/postfix flush 2>/dev/null 1>&2 && success || failure $"$prog flush"
return $?
}
check() {
conf_check
/usr/sbin/postfix check 2>/dev/null 1>&2 && success || failure $"$prog check"
return $?
}
# See how we were called.
case "$1" in
start)
[ $running -eq 0 ] && exit 0
start
;;
stop)
[ $running -eq 0 ] || exit 0
stop
;;
restart|force-reload)
stop
start
;;
reload)
[ $running -eq 0 ] || exit 7
reload
;;
abort)
abort
;;
flush)
flush
;;
check)
check
;;
status)
status -p $pidfile -l $(basename $lockfile) -b /usr/libexec/postfix/master master
;;
condrestart)
[ $running -eq 0 ] || exit 0
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|abort|flush|check|status|condrestart}"
exit 2
esac
exit $?
Author And Source
この問題について(PHP mb_send_mail EC2 mail送れない。), 我々は、より多くの情報をここで見つけました https://qiita.com/KosukeSone/items/04ad83b1b357b610dba3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .