私は友人の結婚式のためにフォトギャラリーウェブアプリを書いています、そして彼らはゲストが彼らがその日に撮ったデジタル写真を提出するためのフォトギャラリーを望んでいます。
すべてのオプションを評価した後、ユーザーにとって最も簡単な方法は、使い慣れたインターフェイス(メール)を使用して、写真を添付ファイルとして送信することです。
メールボックスを作成しましたが、ギャラリーシステムに追加するための自動処理のために、これらの添付ファイルを接続して取得する必要があります。しかし、どのように?これを行うために見たチュートリアルやプレハブクラスはありますか?
どのMTAを使用していますか? postfix + maildropを使用する場合、特定のメッセージをPHPスクリプトを介してパイプし、受信メールを処理する)フィルタリングルールを作成できます(google for maildrop and xfilter
)。
以前はこれをたくさん行っていましたが、コードが見つかりません。これが私が見つけた縮小版です。それはあなたを正しい道に導くはずです。私は以前、このタイプのスクリプトをcronジョブから実行していました。申し訳ありませんが、最終バージョンが見つかりません。 ;(
// Open pop mailbox
if (!$mbox = imap_open ("{localhost:110/pop3/notls}INBOX", "user", "tester")) {
die ('Cannot connect/check pop mail! Exiting');
}
if ($hdr = imap_check($mbox)) {
$msgCount = $hdr->Nmsgs;
} else {
echo "Failed to get mail";
exit;
}
$MN=$msgCount;
$overview=imap_fetch_overview($mbox,"1:$MN",0);
for ($X = 1; $X <= $MN; $X++) {
$file = imap_fetchbody($mbox, $X, 1);
imap_delete($mbox, $X);
}
imap_expunge($mbox);
imap_close($mbox);
幸運を!
この目的のために専用のメールボックスを作成している場合、フィルタリングメカニズムを使用することはほぼ間違いなくあなたが望むものではありません。代わりに、メールボックスをアプリケーションへのパイプにし、アプリケーションでstdinからのメッセージを読み取り、本文を解析し、MIMEで本文を解析して添付ファイルを取得する必要があります。
メールボックスをパイプにすることは、sendmail、postfix、qmailなど、私が知っているすべての一般的なUNIXベースのMTAによってサポートされています。通常、次のようにエイリアスファイルで定義します。
#sendmailまたはpostfix構文
msgsubmit: "|/usr/bin/php〜path/to/example.php"
次に、msgsubmit @へのメールは、配信のためにphpプログラムにルーティングされます。
これには、IMAPサーバーやMTA以外のサーバーが有効であることに依存しないという利点があり、宛先ホストのMTAを制御できる限り正常に機能します。システム上のすべてのメッセージをスクリプトで検査したい場合は、フィルタリングが必要ですが、そうではないと思います。
コピーをメールボックスのどこかに保存したい場合(悪い考えではありません)、次のように、エイリアスを定義して複数のアドレスに移動します。
msgsubmit: "| /usr/bin/php ~path/to/example.php", msgsubmit-box
またはpostfix仮想フォーマット:
msgsubmit
"| /usr/bin/php ~path/to/example.php"
msgsubmit-box
Googleの Picasa Web Albums の使用を検討しましたか?写真を送信してオンラインで共有するためのメールアドレスを設定できます。次に、これらの写真のRSSフィードを取得できます。これは、ほとんどのプログラマーがMTAよりもよく知っています。
Majordomo
は、電子メールを処理する代わりになる可能性がありますが、添付ファイルの処理にはいくつかの制限があります。