重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

タイトルの通りです。

レンタルサーバを借りてEメールを使用しています。
営業という立場上外回りが多く、
PCメールに届いたメールを即時確認したいので、
自動転送機能を使っています。
.mailfilterの「cc "!xxxxx@ezweb.ne.jp"」

添付ファイルが届くとそれ自体も携帯へ転送してしまい、
送信者へエラーメッセージが届いてしまいます。
これを避けたいので、
添付ファイルがある場合は、ファイル自体は転送せず、
「添付ファイルあり」とのメッセージだけが
本文の後ろに記述されるようなプログラムはありますか?

調べてみましたが、phpしか触ったことがない私には、
perlなどawkなどが出てきてよくわかりませんでした。

もともと「ASJ」というレンタルサーバを借りていました。
そこにはワープメールなる、希望に近い機能があったようですが、
先日資金的な面で「さくらインターネット」へ変更しました。
そちらには転送メールの機能しかなく、困っている次第です。

A 回答 (2件)

PC起動しっぱなしで良いなら以下があります(シェアウエアですが)


http://hp.vector.co.jp/authors/VA009014/index.html

この回答への補足

一日使ってなんとか自分できました。


【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);
?>

補足日時:2010/01/04 19:10
    • good
    • 0

>先日資金的な面で「さくらインターネット」へ変更しました。


そちらには転送メールの機能しかなく、困っている次第です。

さくらインターネット利用が前提なら無理だと思うのですが、サーバの変更は検討されるのですか?
    • good
    • 0
この回答へのお礼

1さん2さんありがとうございます。

なんとか自力でできましたのでこれで閉め切ります。

お礼日時:2010/01/04 19:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!