postfixでメール受信をトリガーにPHPファイル実行したいが、メールサーバでメールを受信できません。
linux環境でWEBシステムを構築しております。
環境構築や設定についての知識が乏しく分かり辛い点が多々あるかもしれませんが、
御指摘下さい。
実現したい事として、
postfixであるメールアドレス(pictup@3cha.test.jp)にメールを受信したタイミングで、
PHPファイルを実行させようとしていますが、上手く出来ていません。
メールサーバにてメールを受信出来ていない原因を追究し解消したいのですが、
どのような手順で調査すればよいか分からずにいます。
(通信経路に不具合がありそうなので調べたいのですが、何をどのように調べたらよいか理解しきれていません)
実施した内容や現在の設定を以下に記載します。
その他に必要な情報があれば追記致しますので、御連絡下さい。
●各種環境のバージョンは以下の通り
[各種バージョン]
OS:CentOS release 4.6 (Final)Kernel \r on an \m
postfix:2.3.5
PHP:5.2.14
●postfixのaliases及びmain.cfの記述内容
【postのaliases】
・配置場所
/etc/aliases
・内容
※追記箇所のみ抜粋。(コメント行等抜粋)
# 転送設定
#pictup: testmail@abc.com ←この行を有効にして、mailコマンドでpictup@3cha.test.jpにメール送信したらtestmail@abc.comに転送は出来た。
pictup: "| /usr/local/php/bin/php /home/ioix/demo/batch/system/mail_received.php"
【postfixのmain.cf】
[root@aaa etc]# postconf -n 実行結果
・配置場所
/etc/postfix/main.cf
・内容
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
debug_peer_level = 2
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
mail_owner = postfix
mail_spool_directory = /var/spool/mail
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, 3cha.test.jp
mydomain = local.domain
myhostname = host.local.domain
mynetworks = 168.100.189.0/28, 127.0.0.0/8, 125.100.128.101, 192.168.100.0/24, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
sample_directory = /usr/share/doc/postfix-2.3.3/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/isp_auth
smtp_sasl_security_options = noanonymous
unknown_local_recipient_reject_code = 55
●動作確認方法
以下、3点の手順で確認。
(linuxサーバ内部からmailコマンド実行している理由は、外からのメール受信が上手くいっていない為。)
下記コマンド実行したがPHPファイルは起動されなかった。
(1)postfixの記述変更(転送設定をコメントアウトして教えて頂いた内容を記述)
pictup: "| /usr/local/php/bin/php /home/ioix/demo/batch/system/mail_received.php"
上記のように設定。
(2)postfix再起動
以下コマンドを実行
[root@aaa etc]# newaliases
[root@aaa etc]# /etc/rc.d/init.d/postfix restart (←念の為リスタート実行)
(3)mailコマンドでサーバ内部からメール送信
[root@aaa etc]# mail -s TestSend root@3cha.test.jp
TESTSEND to Server
.
Cc:
[root@aaa etc]#
●現状の出来ている事
【出来ている事】
(1)サーバからmailコマンドで外部メールアドレスへメール送信出来る
(2)postfixのaliasesファイルに以下記述をして、root@***にサーバからmailコマンドで
root宛にメールを送ると転送されて外部メールアドレスで送ったメールが確認出来る
root: test@aaa.com
(3)サーバ外部からサーバのpostfixに設定したドメイン宛にメールを送っても以下エラーでサーバにメールは届かない。
[postfixのaliases内のmydestinationを以下に変更]
mydestination = $myhostname, localhost.$mydomain, localhost, 3cha.test.jp
[送信したメール宛に戻ってくるエラーメッセージ]
Hi. This is the qmail-send program at e2087.secure.jp.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.
<root@3cha.test.jp>:
Sorry, I wasn't able to establish an SMTP connection. (#4.4.1) I'm not going to try again; this message has been in the queue too long.
(4)nslookupコマンドで正引きとMXレコードは確認済み(一部IPは伏せてあります)
※MXレコードの設定がこれで良いのかが自分自身で判断出来ていません。
[root@aaa etc]# nslookup
> 3cha.test.jp
Server: 192.***.***.***
Address: 192.***.***.***#53
Non-authoritative answer:
Name: 3cha.test.jp
Address: 125.***.***.***
[root@aaa etc]# nslookup
> set type=mx
> 3cha.test.jp
Server: 192.***.***.***
Address: 192.***.***.***#53
Non-authoritative answer:
3cha.test.jp mail exchanger = 10 mail.cpos.jp.
Authoritative answers can be found from:
cpos.jp nameserver = ns2.value-domain.com.
cpos.jp nameserver = ns1.value-domain.com.
mail.cpos.jp internet address = 125.***.***.***
ns1.value-domain.com internet address = 119.***.***.**
ns2.value-domain.com internet address = 175.**.**.**
長文且つ纏まりがなく大変申し訳ございません。
何から手をつけてよいのか、分からなくなってきてしまったので、
どんな些細な事で構わないのでアドバイス頂ければ幸いです。
よろしくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんちす
本件、アプローチは以下と思います。
1)メールの送受信ができる
2)メールの受信をトリガとしてPHP(?)を起動する
ですが、2)はもともと実行できるんでしょうか?
私の認識では、PHPはサーバサイドのスクリプトで
Apacheなどがないと動かないのでは?
PHPって、Webサーバにブラウザでアクセスした時に動く
ものであり、サーバ上でPHPを単体で動かすなんてのは
聞いたことがありません。
大丈夫でしょうか?
この回答への補足
御回答ありがとうございます。
また、こちらの説明が不足しており大変申し訳ございません。
>私の認識では、PHPはサーバサイドのスクリプトで
>Apacheなどがないと動かないのでは?
御指摘の通りです。
今回の前提として何故メールをトリガにPHP(プログラム)を動かす必要があるのか補足させて頂きます。
現在、ガラケー(フィーチャーフォン)の開発をしております。
PCでは画像のアップロードをする場合、アップロードダイアログを利用して
ファイルアップ出来るのですが、ガラケーの場合それが出来ない機種があります。
なので、画像添付したメールを特定のメールアドレスに送信し、
postfixでメール受信をトリガーにプログラムを実行し、
メール解析を行い添付画像をサーバの特定ディレクトリに保存して、
後に参照するという事を実現しようとしています。
(上記は、ガラケーの画像投稿掲示板等を実現する為に多く行われている手法です。
またメールをトリガとして起動させるプログラムがPHPなのは、
受け取ったメールの情報を基に、画像加工やDB情報更新処理を同時に行う必要があり
処理を実装しているのが今回はPHPだからです。)
Parl等で画像のアップロードを実現する方法もあるようですが、
今回はPHP環境での開発を前提としている為、
他言語での実現は御教授頂いても実現が厳しいです。
(ガラケーの画像アップロード方法を論議し出すときりがなく、
質問から主旨がずれてしまう為、アドバイス程度に留めて頂ければ幸いです。)
同サーバにはPHPと一緒にApacheも入れています。
ちなみにApacheのバージョンは、
Apache/2.2.16
です。
>大丈夫でしょうか?
説明が不足しており申し訳ございません。
上記を踏まえて大丈夫じゃないと思われる事があれば
再度御指摘頂ければ幸いです。
上記を踏まえて、質問に再度御回答頂けると幸いです。
よろしくお願い致します。
御回答ありがとうございます。
質問時の説明が不足しており申し訳ございません。
補足説明を参考に再度御回答頂ければ幸いです。
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- UNIX・Linux AWSのEC2のZabbixユーザーでawscliコマンドが実行できない状態を解決する 1 2022/12/06 22:17
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- UNIX・Linux Kali Linuxで起動できない - Minimal BASH Like Line Editing 1 2022/06/03 13:14
- PHP php 完了画面の送信メールのコードを書いているのですが・・・ 2 2023/06/02 12:01
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- UNIX・Linux Postfixでドコモメールに送信すると届くまで10分ぐらいかかる 6 2023/03/05 13:56
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
postfixでユーザごとに最大容量...
-
postfixでユーザアカウントがな...
-
Postfixでの受信について
-
postfix smtpサーバーリレーがT...
-
postfixでメールの受信ができま...
-
phpからメールを送信しようとす...
-
メール受信時postfixでPHPファ...
-
DNSサーバを設定したのですがns...
-
エラーメールで"too many hops"...
-
パスワード設定していないユー...
-
リモートデスクトップ接続でパ...
-
同一のホスト名で何か問題があ...
-
同じ独自ドメインを2つのサーバ...
-
ssl_request_logの必要性について
-
「DNSサーバーを自動的に取得す...
-
コマンドでのFTP転送が進まない。
-
ワークグループ設定のPCの名前解決
-
エクセルで#N/Aを含めた平均値...
-
アウトルックで送信時に「名前...
-
Linux HTML形式でメール送信す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postfix smtpサーバーリレーがT...
-
postfixでdocomoやyahooなどの...
-
phpからメールを送信しようとす...
-
Postfixで外部にメール送信がで...
-
postfixとdovecotでメールサー...
-
telnetでポート110に繋がらない
-
postfixでユーザごとに最大容量...
-
postfix+Dovecotでメール受信で...
-
postfix設定について
-
postfixでメールの受信ができま...
-
postfixを利用しているのを隠し...
-
Postfix+mailmanでのメール送信
-
Postfixで送信ができない
-
dovecotでpop受信が出来ません
-
Postfix メールを別のサーバー...
-
自宅Macでメールサーバの構築に...
-
Postfixの起動出来ない
-
postfix 送信できるが受信できない
-
postfixのSMPT_AUTH設定
-
postfix:aaa.bbb.ac.jpからし...
おすすめ情報