技術資料

メール受信をトリガーにしたPHPスクリプトの作成と基本的な処理方法

作成日:2009.04.03

PHP

PHPを用いて、メール受信をトリガーに自動処理を行うスクリプトの作成手順を解説します。PEARのMail_mimeDecodeパッケージを活用し、メールの解析と必要なデータの抽出を行う方法をご紹介します。

error この記事は最終更新日から16年以上が経過しています。

以前、メール受信時に perl スクリプトを起動して自動処理させる方法という記事を書きましたが、それのPHP版です。

上記のエントリでも書いていますが、メール受信時に何らかの処理を行なうプログラムを作る場合、

  1. 特定のメールアカウントにメールが届いた際に、何らかのプログラムが起動するように設定する
  2. そのプログラムを書く

という2つのステップが必要ですが、そのうち1番目のステップに関しては、perl だろうが PHP だろうが、全く関係ありません。
なので、1ステップ目のメールサーバー側の設定に関しては、メール受信時に perl スクリプトを起動して自動処理させる方法を参照してください。

メールを処理する PHP スクリプトの書き方

PHP というと、Webアプリケーションに特化した言語、というイメージがありますが、もちろん perl と同じように、シェル的な使い方もできます。

メールを受け取った PHP スクリプトで、標準入力の内容を読めば、メール受信時の処理を行なえます。

ちなみに PHP の場合、PEAR の Mail_Mime というパッケージを使うと、メール受信時の処理が非常に簡単になります。

PEAR については、さくらのレンタルサーバーに PEAR をインストールするも参考にどうぞ。

#-- PEAR の Mail/mimeDecode.php を読み込む
require_once 'Mail/mimeDecode.php';

#-- メールデータ取得
$params['include_bodies'] = true; 
$params['decode_bodies']  = true; 
$params['decode_headers'] = true; 
$params['input'] = file_get_contents("php://stdin"); // 標準入力
$params['crlf'] = "\r\n"; 
$mail_data = Mail_mimeDecode::decode($params); 

#-- From フィールドの取得
$FromAddress = $mail_data->headers['from']; 

#-- To フィールドの取得
$ToAddress = $mail_data->headers['to']; 

#-- Subject フィールドの取得
$Subject = $mail_data->headers['subject'];
$Subject = mb_convert_encoding($Subject,"UTF-8","JIS");

#-- 本文の取得
$MailBody = $mail_data->body;
$MailBody = mb_convert_encoding($MailBody,"UTF-8","JIS");

後は、取得したデータを元に、色々処理すれば良いです。

なお、添付ファイルつきのメールの場合、本文を上記の方法で取得できないと思います。あくまでテキストメールの場合の例ですので悪しからず。

この記事を書いた人

※上が私です。

奈良市を拠点に、25年以上の経験を持つフリーランスWebエンジニア、阿部辰也です。

これまで、ECサイトのバックエンド開発や業務効率化システム、公共施設の予約システムなど、多彩なプロジェクトを手がけ、企業様や制作会社様のパートナーとして信頼を築いてまいりました。

【制作会社・企業様向けサポート】
  • 専任エンジニアのいない企業様に対するシステム面の不安を解消
  • 柔軟な契約形態や短納期での対応により、急なニーズにも迅速にサポート
  • システムの企画段階から運用まで、ワンストップでのサービスを提供

Webシステムの開発やサイト改善でお困りの際は、どうぞお気軽にご相談ください。小さな疑問から大規模プロジェクトまで、最適なご提案を心を込めてさせていただきます。

ぜひ、プロフィールWeb制作会社様向け業務案内一般企業様向け業務案内もご覧くださいね。

CodeIgniter 4 フォーム入力バリデーション入門 ― 基本操作とカスタマイズ手法

2025.04.06

CodeIgniter 4でのフォーム入力値取得とバリデーション処理を、シンプルな実装例を通して解説します。基本的なルール設定から、エラーメッセージの出力、フォームラベルの日本語化やローカライズ方法まで、実践的なテクニックをコンパクトにまとめています。

CodeIgniter PHP

PHPによる OpenAI TTS API 実装ガイド ― GPT-4o mini TTSでテキストを音声に変換

2025.04.05

本記事では、最新の OpenAI TTS モデル「GPT-4o mini TTS」を利用し、PHPでテキストを自然な音声に変換する実装手法を詳しく解説します。curl を用いたリクエスト送信、JSON形式のパラメータ設定、ファイル出力処理まで、実際のサンプルコードを交えながら、各工程のポイントとパラメータの意味について解説。

OpenAI API PHP

CodeIgniter 4 モデルの基本 ― CRUD操作とデータ操作ロジックの解説

2025.04.04

本記事では、CodeIgniter 4 のモデルの基本概念から、実際のCRUD(Create, Read, Update, Delete)操作の実装方法までを詳しく解説します。モデルを用いたデータベース操作の簡略化や、ビジネスロジックの分離手法、さらにコントローラとの連携方法など、実践的なコード例を交えながら、効率的なアプリケーション開発に必要な知識を提供します。

CodeIgniter PHP

CodeIgniter4 フォームヘルパー入門 ― HTMLフォーム生成の実践解説

2025.03.25

本記事では、CodeIgniter4 のフォームヘルパーを活用して、HTMLフォームを効率的に生成する手法を解説します。基本的な使い方から、CSRF対策や各種入力要素の生成、バリデーション連携の実践例まで、具体的なコードサンプルを交えながら分かりやすく説明しています。

CodeIgniter PHP

阿部辰也へのお仕事の依頼・お問い合わせ

軽いご相談もお気軽にどうぞ!

個人情報の取り扱いについて *必須 プライバシーポリシーをご確認いただき、同意いただける場合は「同意する」にチェックをしてください。

keyboard_double_arrow_up
TOP