先日このサイトでお聞きしたことの派生なのですが、メールをトリガーとしてphpを起動させるという方法についてお教えください。
メールをトリガーとしてphpを起動させる方法については当サイトで先日お教えいただいた方法で行けたのですが、その時には
環境がさくらインターネットのphp5.4バージョンでした。これをphp7系にしたところ、メールエラーで「554 5.3.0 unknown mailer error 255」が返ってくるようになりました。php5系とphp7系で.mailfilterなどの記述方法が変わったのでしょうか?
記述しているスクリプトは以下の通りです。
階層情報 home └ huga ├ www │ └ test.php │ └ MailBox └ info └ .mailfilter
php
1.mailfilter 2パーミッション:600 3 4to "| /home/huga/www/test.php"
php
1test.php 2パーミッション:744 3 4#!/usr/local/bin/php -q 5<?php 6// PEARパッケージライブラリの読み込み 7require_once("/home/huga/www/pear/PEAR/Mail.php"); 8require_once("/home/huga/www/pear/PEAR/Mail/mimeDecode.php"); 9 10function getmail($line){ 11 if(eregi("(.*)\<(.*)\>", $line, $tmp)){ 12 $from = $tmp[2]; 13 } 14 return strtolower(trim($from)); 15} 16 17mb_internal_encoding("UTF-8"); 18 19$stdin = fopen("php://stdin", "r"); 20$email = ""; 21 22while ($line = fgets($stdin)){ 23 $line = trim($line); 24 if (!$line || $email){ 25 break; 26 } 27 if (eregi("^from:", $line) || eregi("^Return-Path:", $line)){ 28 $email = getmail($line); 29 } 30} 31 32$to = $email; 33$subject = "テストメール"; 34$body = "メールアドレス:". $email; 35$headers = 'From: info@huga.sakura.ne.jp'. "\r\n". 'Reply-To: info@huga.sakura.ne.jp' . "\r\n". 'X-Mailer: PHP/'. phpversion(); 36 37mail( 38 $to, 39 mb_encode_mimeheader($subject, 'ISO-2022-JP-MS'), 40 mb_convert_encoding($body, 'ISO-2022-JP-MS'), 41 mb_convert_encoding($headers, 'ISO-2022-JP-MS'), 42 "Content-Type: text/html; charset=\"ISO-2022-JP\";\n" 43); 44?>
この記述でphp7系だとエラーメールが返ってくるのですが、これをphp5系にすると期待した動作(空メールを送信したアドレスが本文に記載されたメールが返ってくる)になります。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/18 00:18