- 締切済み
受信メールを携帯へ自動転送 但し添付ファイルは自動削除
タイトルの通りです。 レンタルサーバを借りてEメールを使用しています。 営業という立場上外回りが多く、 PCメールに届いたメールを即時確認したいので、 自動転送機能を使っています。 .mailfilterの「cc "!xxxxx@ezweb.ne.jp"」 添付ファイルが届くとそれ自体も携帯へ転送してしまい、 送信者へエラーメッセージが届いてしまいます。 これを避けたいので、 添付ファイルがある場合は、ファイル自体は転送せず、 「添付ファイルあり」とのメッセージだけが 本文の後ろに記述されるようなプログラムはありますか? 調べてみましたが、phpしか触ったことがない私には、 perlなどawkなどが出てきてよくわかりませんでした。 もともと「ASJ」というレンタルサーバを借りていました。 そこにはワープメールなる、希望に近い機能があったようですが、 先日資金的な面で「さくらインターネット」へ変更しました。 そちらには転送メールの機能しかなく、困っている次第です。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- koi1234
- ベストアンサー率53% (1866/3459)
回答No.2
PC起動しっぱなしで良いなら以下があります(シェアウエアですが) http://hp.vector.co.jp/authors/VA009014/index.html
- violet430
- ベストアンサー率36% (27472/75001)
回答No.1
>先日資金的な面で「さくらインターネット」へ変更しました。 そちらには転送メールの機能しかなく、困っている次第です。 さくらインターネット利用が前提なら無理だと思うのですが、サーバの変更は検討されるのですか?
質問者
お礼
1さん2さんありがとうございます。 なんとか自力でできましたのでこれで閉め切ります。
補足
一日使ってなんとか自分できました。 【1】go-pearで「mail」「mimeDecode」をインストール==================================== 参:http://masha.maakikaku.jp/2008/05/gopearpear.php 【2】各メールディレクトリに「.mailfilter」ファイルを作成============================== cc "| /home/サーバアカウント/MailBox/アカウント/info_mail.php" 【3】各メールディレクトリに「info_mail.php」ファイルを作成============================ #!/usr/local/bin/php <?php 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"; $structure = Mail_mimeDecode::decode($params); $filefig = ""; //送信者のメールアドレスを抽出 $mail = $structure->headers['from']; $mail = addslashes($mail); $mail = str_replace('"','',$mail); //署名付きの場合の処理を追加 preg_match("/<.*>/",$mail,$str); if($str[0]!=""){ $str=substr($str[0],1,strlen($str[0])-2); $mail = $str; } /* *「$structure->headers['to']」で送信元のメールアドレスも取得できます。 */ // 件名を取得 $diary_subject = $structure->headers['subject']; switch(strtolower($structure->ctype_primary)){ case "text": // シングルパート(テキストのみ) $diary_body = $structure->body; break; case "multipart": // マルチパート(画像付き) foreach($structure->parts as $part){ switch(strtolower($part->ctype_primary)){ case "text": // テキスト $diary_body = $part->body; break; case "image": // 画像 $filefig = "【※添付ファイルあり】";//添付ファイルのある場合、このフラグが1へ //画像の拡張子を取得する(小文字に変換 $type = strtolower($part->ctype_secondary); //JPEGチェック(GIFやPNG形式の画像チェックなども可 if($type != "jpeg" and $type != "jpg"){ continue; } //添付内容をファイルに保存 $fp = fopen("/tmp/picture.jpg" . $type,"w" ); $length = strlen( $part->body ); fwrite( $fp, $part->body, $length ); fclose( $fp ); break; default; $filefig = "【※添付ファイルあり】";//添付ファイルのある場合、このフラグが1へ } } break; default: $diary_body = ""; } //日本語メール送信 $to = "xxx@ezweb.ne.jp";//★★★ $subject = "転送◆".$diary_subject; $body = "【PC自動転送MAIL】 ".$diary_body." ".$filefig; $from = $mail; //ちゃんと日本語メールが送信できます mb_send_mail($to,$subject,$body,"From:".$from); ?>