【PEAR】さくらサーバーで、受信メールの内容を取り出す

まず、さくらインターネットサーバーで以下の2点は完了しておいて下さい。
以前僕がブログ内で書いたものです。

  1. 【PEAR】さくらインターネットサーバーでPEARを使う
  2. 【空メール】さくらインターネットで、空メールからPHPプログラムを実行する。
  3. 【PEAR】さくらサーバーで、画像添付メールの画像をプログラムで取り出す。

2番で用意したPHPファイルに記述します。

1番で行ったPEARのインストール場所で記述しています。
文字エンコードは、UTF-8で書いています。

画像を保存したりしたい方は、3番を参照して下さい。

添付画像なしで、送信者アドレスと件名、本文を取得したい方のみの記述です。
多少軽くなるので、画像が必要の無い方はこちらで。

取得したメールアドレスや件名は、データーベースに登録するなり、テキストファイルに保存するなり、メールで送りなりして下さい。

————–ここから—————–

#!/usr/local/bin/php

 

<?php

//PEARのパスを設定

$path = ‘/home/(ユーザー名)/pear/PEAR/’;
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once ‘/home/(ユーザー名)/pear/PEAR/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”;

if (!$params['input']) {

// 読み込み失敗

exit();

}

$structure = Mail_mimeDecode::decode($params);

//送信者のメールアドレスを抽出

$mail = $structure->headers['from'];

$mail = addslashes($mail);

$mail = str_replace(‘”‘,”,$mail);
$mail = preg_replace(‘/(^.*<|>$)/’, ”, $mail);

 

// 件名を取得

$subject = $structure->headers['subject'];

switch (strtolower($structure->ctype_primary)) {
case “text”:
$body = $structure->body;
break;
default:
$body = “”;
}

 

?>

————–ここまで—————–

 

詳細などは、【PEAR】さくらサーバーで、画像添付メールの画像をプログラムで取り出す。を参照して下さいね。
内容は画像保存以外、同じですので。

カテゴリー:PHP, Tips, さくらインターネットコメント(0)

【PEAR】さくらインターネットサーバーでPEARを使う

さくらサーバーは、PEARのインストール方法が簡単にできるとの事で選んだ部分もあるのだが。
ただ、簡単とはいえ、インストール後に、必要なパッケージもインストールしないといけないので、間違えないようにメモ。

まず、go-pear.txt を保存して下さい。拡張子は.phpに変更して下さい。

さくらサーバーの場合は、FTPで接続し、www/以下にgo-pear.phpをアップロードして下さい。

wwwディレクトリと同じ場所に、「pear」とディレクトリを作っておきます。
※FTPで見ると、go-pear.phpをアップしたディレクトリの一つ上です。

ブラウザで、「http://(ドメイン名)/go-pear.php」にアクセスします。

ページ下の「NEXT」を押します。

 

 

 

 

 

 

次画面は以下のように入力します。1番の項目を「/home/(自分のアカウント)/www」に。
10番を「/home/(自分のアカウント)/www/go-pear-admin.php」に。
11番を「/usr/local/bin/php」に。

後は設定せずに、「install」ボタンを押す。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

インストールが終われば、www以下に、「go-pear-admin.php」が出来ているはずです。

エディターで開いて、8行目の「$pear_dir = ‘@pear_dir@’; // default of install」の部分を、
「$pear_dir = ‘/home/(アカウント名)/pear/PEAR’; // default of install 」に変更し保存。

 

ブラウザで、「http://(ドメイン名)/go-pear-admin.php」にアクセスします。すると下記画面に。

一番下の「Quick-Install a package」に、必要なパッケージ名を入力し、クイックインストール。

画像を添付したメールを自動で文章や件名、画像と分解して、
MySQLやサーバー内に画像を保存するのには、以下のパッケージ名を入力すれば大丈夫でした。
画像分解などのやり方はまた今度。
※画面上部のWarningは、他者にアクセスされると困るので、パスワードを付けてとのアラート。

【インストールしたパッケージ】

  • Mail
  • Mail_Mime
  • Mail_MimeDecode

最後に、さくらコントロールパネルにアクセスし、サーバツールの設定→PHP言語に関する設定→php.ini設定ファイル編集で
「include_path=”.:/home/(アカウント名)/pear/PEAR”」 の一行を追加し終了です。

カテゴリー:PHP, Tips, さくらインターネットコメント(4)

【空メール】さくらインターネットで、空メールからPHPプログラムを実行する。

さくらインターネットで、空メールからPHPプログラムを実行するやり方をメモ。
メールの着信をトリガーにしてPHPプログラムを起動する方法です。

  1. サクラコントロールパネルで、空メールにしたいメールアドレスを新規で作成する。例) test@test.com
  2. 作成したメールアドレスにメール転送設定を行う。すぐに消去するので、転送するアドレスは何でもいい。設定したら、すぐに転送設定を消去する。
  3. FTPでサーバーに接続し、「/home/ユーザー名/MailBox/test/」の「.mailfilter」にこの後の内容を入力する。最初は何も書いていないファイルです。もし、このファイルが存在しなかったら、「.mailfilter」のファイルを新規で作ります。
  4. 「.mailfilter」の中身を以下のようにする。cc “| /home/ユーザー名/www/test.php”
    ※サーバーによって変わるので、ご自身のサーバーのドキュメントルートを記述して下さい。
    通常さくらは、/home/ユーザー名/www/です。
    ユーザー名は、さくらインターネットの契約時に決められた名称を入れてください。
    CCの後、|の後には半角スペースが入るので注意してください。
  5. 「.mailfilter」は、パーミッション(属性)を600に変更してする。
    これで、メールを受信したら自動的に、/home/ユーザー名/www/test.phpのPHPプログラムが実行されることになる。
  6. 実行させるPHPプログラムには、空メールで受け取った際に実行したいコードを記述します。
    一行目には必ず、「#!/usr/local/bin/php」 を入れる。
    あとは、通常のPHPを書くのと同じです。ただ、ファイルを保存したりする保存場所は、間接指定「../」や直接指定「http://www〜」は使用せずに、サーバードキュメントルート「 /home/ユーザー名/www/」で指定してください。
  7. 実行させるPHPは、パーミッション(属性)を744に変更してする。
  8. 以上

これで、空メールがきたら、自動的に指定のプログラムが起動する事となります。

上記、【4】での【CC】の部分ですが、空メールをメールソフトでも受信したい場合は、【CC】にします。

ただ、【CC】だと空メールがくるたびに、メールソフトで受信しないと溜まっていきます。
メールソフトで受信せずに、プログラムを実行させるだけなら、【to】 を使います。

うまくプログラムを記述すれば、データーベースに登録したり、PEARを使えば、メールに添付された画像を取り込む事ができます。

カテゴリー:Tips, さくらインターネットコメント(2)

【サーバー】さくらサーバーで日本語ドメインの設定

弊社で今後使うために取得した日本語ドメインの設定方法をメモ。

さくらサーバーとお名前.comを使った設定方法です。

色々とサイトを確認していると先に、さくらインターネットを設定しないと動作しないとの事。
なので、間違えないように先にさくらを設定します。

弊社の日本語ドメインも設定済みです。エクスプロード.jp

さくらインターネットでの設定

  1. 日本語ドメインを取得し、Punycodeに変換する。→こちらで変換できます。
  2. FTP で、/home/ユーザ名/www の直下に、あらかじめこのドメインが使うフォルダを作成する。
    さくらインターネットはマルチドメインなのでこのように設定する。
  3. サーバ コントロール パネルにログインする。
  4. サーバ情報の表示 → サーバに関する情報を確認し、IP アドレスをメモっておく。111.11.111.11など
  5. ドメイン設定 → 新しいドメインの追加 → 【5. 他社で取得したドメインを移管せずに使う・属性型JPドメインを使う(さくら管理も含む)】を選択する。
  6. 【他社で取得された独自ドメインのサブドメインを追加】のところに、追加したいドメイン名を Punycode 形式で入力して送信する。
  7. 次の画面でマルチドメインを設定する。
    設定:「www」を付けずに運用したい場合は、「wwwを付与せずマルチドメインとして使用する(上級者向け)」を選択する。
    対象フォルダ:先程、/home/ユーザ名/www直下に作成したフォルダを指定する。
    送信して完了。

お名前.comでの設定

  1. ドメイン Navi にログインし、ドメインの設定画面に移動する。
  2. レンタル DNS レコード設定 →入力画面に進む。
    • ホスト名:Punycode 形式で記載する。(.jpや.comまで入力)
    • TYPE:A
    • VALUE:さくらコントロールパネルでメモした IP アドレスを入力。111.11.111.11など
  3. 追加して、設定内容を確定する。
  4. 「ドメイン設定」メニューから「ネームサーバー変更」をクリックします。
  5. 「ネームサーバー変更」画面で、変更したい日本語ドメイン(複数選択可)を選択し、「他のネームサーバーを利用」を選択。
  6. プライマリ:ns1.dns.ne.jp、セカンダリ:ns2.dns.ne.jp を入力し、確認画面へ進む→設定で完了。
    ※さくらインターネットのネームサーバーを入力します。画面では、お名前.comのプライマリ:01.dnsv.jp、セカンダリ:02.dnsv.jpを設定してと出るが間違いないように。
  7. DNSを設定後、切り替え作業に入ります。早ければ30分くらいで変更されますが、最高72時間かかります。

 

カテゴリー:Tips, さくらインターネット, サーバーコメント(1)