• 締切済み

さくらインターネットでの添付ファイルを除去したメールの転送スクリプト

さくらインターネットのレンタルサーバを利用しています。 サーバで受け取ったメールを添付ファイルを除去して携帯電話に転送するスクリプトを書きたいと思っていますがよくわかりません。 ちょうどいい具合に以下のURLにサンプルがありましたが、これですと肝心の本文が転送されません。 http://faq.sakuratan.com/wiki/wiki.cgi?%c3%e5%bf%ae%c4%cc%c3%ce%a5%e1%a1%bc%a5%eb%a5%d7%a5%ed%a5%b0%a5%e9%a5%e0%ce%e3 上のURLのスクリプトに添付ファイルを除去した上での本文を記載するためにはどう書けばいいのでしょうか。 ※一応サンプルとして引用しましたが、もっといいやり方がありましたらお教え下さい(ただし外部のサービスやソフトウェアを使うのはなしで、あくまでさくらインターネット内で行うものです)。 どうかご教授下さい。

  • Perl
  • 回答数1
  • ありがとう数4

みんなの回答

  • taseki
  • ベストアンサー率66% (155/233)
回答No.1

メールデータの解析は、普通はMIME::Parserモジュールを使います。 というより、サンプルとして上げられている方法よりも、ずっと簡単です。 http://search.cpan.org/~doneill/MIME-tools-5.427/lib/MIME/Parser.pm パースすると、送信者、送り先、件名、本文などなど個別に取り出せますから、必要なものをとりだして必要なら加工なりして転送すればOKです。 添付ファイルの場合は、multipartとして「本文の一部」に含まれますから、本文全体からtext/plainだけを取り出せば、本文テキストだけ、ということになります。

関連するQ&A

  • メール本文での振り分けについて

    現在さくらのメールサーバを利用しています。 メールの本文に、指定した特定の文字が含まれているメールのみ転送したいと思っています。 そこでこちらのwiki(http://faq.sakuratan.com/wiki/wiki.cgi?%c3%e5%bf%ae%c4%cc%c3%ce%a5%e1%a1%bc%a5%eb%a5%d7%a5%ed%a5%b0%a5%e9%a5%e0%ce%e3)を参考にしたのですが、Perlは扱ったことがないので分からず行き詰まっています。 上記のwikiにあるスクリプトをどのように記述し直せば本文の文字で転送ができるようになるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • メール転送スクリプト

    .  次のようなシステムを,CGI・PHP対応レンタルホームページスペースに設置しようと考えています。  メールアドレスAにメールが届くとそのメールは,添付ファイル・タグ・絵文字等含め,すべて完全にそのままメアドBへ転送される。ただし,この時のFromアドレスはメアドCにする。  メアドCに届いたメールは,同様にしてメアドDとEに転送される。ただし,Fromアドレスは変更しない。 [イメージ図](矢印はメールの方向) [?]→A→B(Fm:C) [?]→C→D&E  いちから作る時間も能力もないので,公開されている既製のサンプルを探しています。また,もし記述していただける方がいると助かります。  誠に勝手な質問ですが,どうかお願いします! .

    • ベストアンサー
    • PHP
  • 転送したPCメールの添付ファイルが見れない

    最近、ギャラクシーSIIに買い換えました。 メールについて質問です。 PCメールをspモードメールに転送しています。 その際に、転送したPCメールの添付ファイルを見たいのですがどうすれば良いでしょう? 添付付きの転送メールの場合は、添付ファイルはメールに直接添付はされず、本文の末尾に 『添付有 読む⇒ http://・・・・・・・』という、URLが表示され、ブラウザに接続するとエラーになります。 PCから直接spモードメールへメール送信(添付付き)した場合は、当然添付ファイルは見れます。

  • メール添付ファイルの自動PDF化について

    ファイル添付されたメールに対し、受信側メールサーバーで次のような処理を考えています。 何か良いパッケージやサービスはないでしょうか? メールサーバ上に届いたメールに、ファイル(Officeなど)が添付されていた場合、 1)添付ファイルをPDF化し、別サーバ上へ格納する 2)メールから添付ファイルを削除し、メール本文にPDFファイルを参照できるURLを埋め込む 上記までをメールサーバ(または周辺サブシステム上)で自動処理したいです。 エンドユーザがPC側で参照する際は、メール本文内に埋め込まれたURLをクリックするだけでPDFファイルが開くようになるイメージです。 何か良い手段がありましたら、ぜひ教えてください。

  • メール転送時に添付ファイルを除く設定

    outlookを使用しています。 特定の題名のメールについては、自動転送時されるようにしています。 このとき、添付されているファイルをのぞいて、本文のみ自動転送することが出来るでしょうか。 あるとして、その設定方法はどういったものでしょうか。

  • 本文に入って表示されてしまった添付ファイルを取り出すには?

    添付ファイル付きのメールを友人に送ったのですが、大きすぎるということで、メールサーバーから戻ってきてしまいました。 実は、作成したファイルはHDDの故障ですでに手元になく、なんとかメールから取り出せたらと考えています。 サーバーから戻ったメールは、添付ファイルではなく、本文のあとに、文字列として以下のように表示されています。 --------_41E7706B5CAE04C6C218_MULTIPART_MIXED_ Content-Type: application/octet-stream; (一部略) 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAACAAAAygAAAAAAAAAA EAAAzAAAAAEAAAD+////AAAAAMgAAADJAAAA//////////////////////////////////////// AAAAAAAAAAAAAAAAAAAAAAAAAAAA (一部略) --------_41E7706B5CAE04C6C218_MULTIPART_MIXED_-- メール本文から、添付ファイルを取り出す方法はあるでしょうか。 ちなみに、サーバーから戻されたメールは、becky!やoutlook expressなど、メールソフトを変えても添付ファイルとして分離できませんでした。 添付の部分を取り出す方法を教えていただけるとありがたいです。

  • 1つの添付ファイルが3形態で届きました。

    1つの添付ファイルが3形態で届きました。 メールを3種類で受信できるように設定しておりますが、届いたのはそれぞれ異なった形態でした。 3種類とは、次のA,B,Cです。プロバイダ宛のメール(A)はGoogleのfree mail (B)へ転送し、更に携帯電話(C)へ転送しております。 友人が添付ファイル付きのメールを、私を含む約20名に送信したところ、私のAには本文には添付したと書かれているものの、ファイルは添付されていませんでした。 調べてみると、Bには「参加者名簿5.xls」のはずが「�Q���Җ���5.xls」というように名前が文字化けして届きました。 ここで最後の5という文字は共通しています。また、漢字5文字に対し、9文字になっています。後者が1bitとすれば、どこか1bitが抜け落ちた結果のように解釈できます。 そしてこのxlsは正常に開くことが出来ました。 また、Cにはメール本文にwinmail.dat というファイルが添付されていました。これはこのままでは読めず、メモ帳で読むと、化け文字の中に「参加者名簿5」と言う文字列が含まれています。 なお、メール本文は3通ともキッチリ届いております。 送信の瞬間、ファイル名の10bitの内1bitが抜け落ちたと解釈すれば、説明できますが、そのようなことが起こりうるのでしょうか?

  • メール添付ファイルが受信されない。

    ちょっとややこしいので箇条書きにします。 (1)通常のメールは届く (2)添付ファイルが付いたものは、添付ファイルだけ削除されて本文が届く(まるっきり添付されていた痕跡はない) (3)添付ファイル付きメールをaとbにCCで同じサーバー(社内)に送るとaには普通に届くが、bには添付ファイルだけ削除されたメールが届く (4)上記(3)のメールを同サーバー(社内)で転送した場合は、添付ファイルも付いて、ちゃんと届く。 (5)メールのサイズは128KB。受信可能なサイズは10Mまで。 こういった症状って、どうしたら直りますか? 教えてください。お願いします。

  • PerlにおいてPOP3経由でメールを受信する方法。添付ファイル

    http://digit.que.ne.jp/work/index.cgi?Perl%A5%E1%A5%E2%2FPerl%A4%C7%A5%E1%A1%BC%A5%EB%A4%F2%BC%F5%A4%B1%A4%EB を参考にしてメールを受信するプログラムをつくってみました。 しかし、添付ファイルを別に保存する方法がわかりません。 (http://digit.que.ne.jp/work/index.cgi?Perl%A5%E1%A5%E2%2FPerl%A4%C7%A5%E1%A1%BC%A5%EB%A4%F2%BC%F5%A4%B1%A4%EB より) if (open(OUT, ">$outfile")) { print OUT @{$message}; close OUT; } のところで @{$message} を操作すれば、本文や添付ファイルを別々に保存することができるとおもうのですが、やり方がわかりません。MIME::Parserを使えばよいという情報がありましたが、日本語ファイル名で不具合があるなどという情報も見受けられます。 実際レンタルサーバにおくのでMIMI::Parserも使えるかどうか微妙です。 添付ファイルと本文を別々に保存する方法が分かる方がおられましたら、ご教授お願いします。

    • ベストアンサー
    • Perl
  • 添付ファイルの中身が転送すると変わってしまいました。

    Outlook2003を使っています。 Excelファイルが2個添付されたメールを転送したのですが 転送先から「全く同じファイルが2個添付されている」と連絡を受けました。 確認したところ受信トレイにはAとBのファイルが添付されたメールが残っているのに 送信済みアイテムにはファイル名はAとBなのにデータの中身が両方Aになっているメールが残っていました。 どうやらBは中身だけAになってしまったようです。 それが一週間で3回も発生したのですが どなたか解決策をご存知ないでしょうか?