質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

3370閲覧

メールを受け取ったらPHPを実行したい

teityann1225

総合スコア158

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/12/14 10:06

編集2017/12/14 10:35

###やりたいこと
サクラサーバーでメールを受け取ったらPHPを実行したい。
サーバーはさくらのレンタルサーバーです。
###エラー内容
メールを受け取ることができない。
スクリプトは実行されていません。
よろしくお願いします。
###コード

php

1//.mailfilter 2to "| /usr/local/bin/php -q /home/ユーザー名/www/push.php"

php

1//push.php 2#!/usr/local/bin/php 3<?php 4 5$stdin = file_get_contents('php://stdin'); 6 7require_once dirname(__FILE__) . 'D.php'; 8 9$stdin = file_get_contents('php://stdin'); 10$decoder = new Mail_mimeDecode($stdin); 11$params = array("include_bodies"=>true); 12$structure = $decoder->decode($params); 13 14 15$subject = mb_convert_encoding(mb_decode_mimeheader($structure->headers["subject"]),mb_internal_encoding(), "auto"); 16$bdoy = $structure->body; 17$subjects = mb_convert_encoding(mb_decode_mimeheader($structure->headers["from"]),mb_internal_encoding(), "auto"); 18?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/12/14 10:26

メールの受信サーバは構築済みですか?
teityann1225

2017/12/14 10:34

さくらのレンタルサーバーを使用しています。
teityann1225

2017/12/14 10:34

なので大丈夫だと思います。
退会済みユーザー

退会済みユーザー

2017/12/14 10:35

メールサーバとウェブサーバは物理的に同じサーバですか?
退会済みユーザー

退会済みユーザー

2017/12/14 10:37

レンタルサーバのプランは?
退会済みユーザー

退会済みユーザー

2017/12/14 10:56

レンタルサーバーのスタンダードプランですね?VPSのスタンダードではないということですね。
guest

回答2

0

必要要件

このスクリプトが正常に動作するには、メールの受信サーバとWEBサーバーが 物理的に同一 のマシンである必要があります。

確認方法

同一のサーバーであるかどうかは、ドメインだけでは判断できません。それぞれのグローバルIPが同一であることを確認してください。

確認方法としては、以下のコマンドでメールサーバーのIPを確認し、

bash

1#windows 2$ nslookup --type=mx google.com 3 4# Mac 5$ dig google.com mx

以下のコマンドでWEBサーバーのIPアドレスを確認する

bash

1#windows 2$ nslookup google.com 3 4# Mac 5$ dig google.com

上の2つが同一であるかを確認して、同一であればスクリプト側の問題。メールの受信ログを確認すべきである。

投稿2017/12/14 11:09

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/12/14 11:24

ではメールの受信ログを調べて原因を探りましょう。
teityann1225

2017/12/14 12:28 編集

メールを送るとこんな文が帰ってきました。 これは参考になりますか? .mailfilter(1): Syntax error. <kojin@2retrt.com>... Deferred: vmail mailer (/usr/local/bin/maildrop) exited with EX_TEMPFAIL Final-Recipient: RFC822; メール@teityan.com X-Actual-Recipient: RFC822; メール@www2999222333.sakura.ne.jp Action: delayed Status: 4.2.0 Diagnostic-Code: X-Unix; 75 Last-Attempt-Date: Thu, 14 Dec 2017 05:14:40 +0900 (JST) Will-Retry-Until: Tue, 19 Dec 2017 00:57:12 +0900 (JST)
退会済みユーザー

退会済みユーザー

2017/12/14 11:43

デバッグの基本ですが、エラーメッセージでググって見ては?
teityann1225

2017/12/14 14:45

調べたのですが分かりませんでした。 教えていただけると幸いです。
退会済みユーザー

退会済みユーザー

2017/12/14 14:46 編集

どういうキーワードで検索して、どのページを見て、何がわからなかったのかを記述してください。 回答者にあなたの仕事をタダでやってもらうサイトではありませんので。
teityann1225

2017/12/17 10:13

Google AppScriptでやることにしました。ありがとうございました。
guest

0

自己解決

Google AppScriptでやることにしました。ありがとうございました。

投稿2017/12/17 10:13

teityann1225

総合スコア158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問