ようこそゲストさん

CPA-LABテクニカル

2008/05/17(土) 10行で空メール処理を実現する

あるメールを受け取って、自動的に差出人に対してメールを返す、という動作の代表例として空メールがあるかと思います。
Qdmail,QdmailReceiverを利用すれば、たった10行で空メールを実現することができます。
#!/usr/local/php-5.2.6/bin/php-cgi -q
<?php
include_once('qdmail_receiver.php');
include_once('qdmail.php');
qd_receive_mail( 'stdin' );
$address = qd_receive_mail( 'header' ,array('from','mail'));
preg_match('/[^@\s]+@[^@\s]+\.[^@\s]+/',$address) or die();
$name = qd_receive_mail( 'header' ,array('from','name'));
$name = empty($name) ? $address : $name ;
qd_send_mail('text', $address , null , "10行で空メール","このメールに見覚えがない場合は破棄してください。\r\n-------\r\nこんにちは".$name."さん",'from@example.com');
無理矢理10行にしただじゃないか、とか、機能しょぼすぎ、という批判はさておき、受け取ったメールのデコードを行い、そこに対してなんらかのメールを送りたい、という単純な要望をかなえてみたかったのです。

なお、このプログラムの前提としてメール受信をきっかけにPHPプログラムを起動するの設定が必要となります。

また、上記プログラムはあくまでも簡便的な例であり、セキュリティ的な配慮をした例ではありません。

QdmailReceiverについて

PHPで、日本語での空メールや多機能転送メールを簡単に実現したり、POPメールボックス操作でWEBメールを実現できたりします。主にメールのMIMEデコード機能、POP操作機能から成り立っています。その他、様々な用途が考えられるでしょう。
Pear::Mail,Pear:MIMEなどで同様の機能は実現できますが、メールの仕組みを理解していないと難しいです。Qdmailシリーズは、「初心者には簡単に、上級者には詳細に」のポリシーのもと、簡単使用方法と、詳細使用方法の両方を使うことができます。
簡単にメールのデコードができるので、例えば、取得したメールをヘッダーと本文まるごとデータベースに保存しても、すぐに内容を取り出すことができます。
gmailのようなWEBサービスも比較的簡単に実現できるでしょう。
というものです。

詳しくはこちらをどうぞ。
マルチバイトメール解析-QdmailReceiver POP付

名前:  非公開コメント   

  • TB-URL  http://www.cpa-lab.com/tech/0145/tb/
  • CakePHPのシェルコマンドをさくらインターネットで使う CPA-LABテクニカル spok
    メール受信をきっかけにCakePHPコントローラーを起動する では、その名の通り、コントローラーをメール受信で起動させた。ここでは、CakePHP1.2で導入されたシェル機能(shell)を利用し、CakePHPのシェルをメール受信をきっかけに起動させてみ...