WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:メールの添付ファイルを実現するには?

R-1 [MAIL] [URL] [WriteDate : Sat Dec 9 19:24:48 2000]

入力フォームで受け取ったデータを元にテーブルで綺麗に編集したHTMLを作成して、それをメールに添付して送るようなCGIを作りたいんですが、ファイルの添付方法がわかりません。
メールの送信にはsendmailを使っています。
多分メールヘッダーにパスを入れるか何かだとは予想してるんですが、どうすればいいのかわかりません・・
どなたかご回答よろしくお願いします。


バギンズ [WriteDate : Sat Dec 9 23:15:35 2000]

とほほ赤ラウンジによると
>andi 2000/05/24(水) 17:54:25
>過去ログに色々とあるよ。
との事なので旧ラウンジで「添付ファイル」を検索しましょう。(^_^;)

http://www.wakusei.ne.jp/twn/wwwlng.cgi

ちゃいぱ [MAIL] [URL] [WriteDate : Sun Dec 10 00:06:20 2000]

以下も、少しは参考になるかも...。
http://www.parkcity.ne.jp/~chaichan/src/perl05.htm#sendmail

バギンズ [WriteDate : Sun Dec 10 00:24:27 2000]

あ、ここのサイトに書いてあったんですね。(^_^;)
失礼しました。m(_ _)m

ふじ [URL] [WriteDate : Sun Dec 10 00:47:52 2000]

モジュール使って良いなら、MIME::Lite で簡単に作れます。

特にコンパイルの必要ないモジュールなので、CPANからアーカイブを
とってきて、展開して出来た Lite.pm を適当なディレクトリに
置くだけでも使えるんじゃないでしょうか。
# 未確認ですが。

R-1 [MAIL] [URL] [WriteDate : Sun Dec 10 02:02:30 2000]

みなさんご回答ありがとうございます。m(_ _)m
過去ログにあったんですか・・
調べてみたんですけど、検索する場所を間違えたのかな・・(・_・?
えーと、すでにmime.plを利用させてもらっているのでふじさんの紹介してくれたMIME::Lite を使ってみますね。


バギンズ [WriteDate : Sun Dec 10 03:19:35 2000]

>R-1さん
私が書いたのは、この掲示板の過去ログではなく、とほほのWWW入門の旧ラウンジの過去ログです。
まぎらわしい書き込みでしたね。すみません。(^_^;)

ふじさんやB-Cusさんのログもバッチリ残ってて、大変参考になります。

R-1 [MAIL] [URL] [WriteDate : Sun Dec 10 22:55:04 2000]

>バギンズさん
そういうことだったんですね。
早速見に行かせていただきましたが、とても参考になりましたよ。
こないだも質問に答えて頂いてとても助かりました(感謝)

>ちゃいぱさん
管理人さんだったんですね、すみません気づきませんでした(−−;
結局、MIME::Liteというのはよくわからなかったので参考にさせていただきました。
どうやらHTMLの場合はベース64とか気にしなくても良かったようで、思ったよりすんなりできました。
ありがとうございます。

>ふじさん
MIME::Lite なんですが、それを使えば簡単に出来る・・ということは旧ラウンジの方でも見かけたんですが、実際にどういうものなのか載ってるところが発見できませんでした。
一応添付ファイルは成功したので良いんですが、何となく気持ち悪いのでできれば使い方を教えてください。
お願いします。

ふじ [URL] [WriteDate : Mon Dec 11 00:51:08 2000]

> できれば使い方を教えてください
まず、CPAN からアーカイブを落してきます。
http://www.cpan.org/modules/by-module/MIME/
の MIME-Lite-2.106.tar.gz
# ring サーバ(http://www.ring.gr.jp) にも、CPAN のミラーがありますので、最寄のミラーを使った方が良いかと。

アーカイブ (MIME-Lite-2.106.tar.gz) を解凍します。
私は Linux で tar を使って
$ tar zxvf MIME-Lite-2.106.tar.gz
としますが、Window用の解凍ソフトでも TAR+GZ を展開できるのならなんでも。

展開して出来たディレクトリの中の、
/lib/MIME/Lite.pm
が、モジュールです。そいつをテキストエディタで読んでみましょう。
頭の部分に、使い方が書いてあります。

サーバにインストールできない(telnet が使えないとか、権限が無いとか)
場合は、スクリプトのあるディレクトリに MIME というディレクトリを掘って、そこに Lite.pm を置きましょう。

おまけ。
-------------------
use MIME::Lite;

# オブジェクトを作る。
$msg = MIME::Lite->new(
        From    => 'hoge@hoge.com',
        To      => 'fuga@fuga.com',
        Subject => 'Attachment Mail sample',
        Type    => 'multipart/mixed',
        Encoding =>'7bit'
);

# 最初のパートを追加。
$msg->attach(
        Type     =>'text/plain; charset=iso-2022-jp',
        Encoding =>'7bit',
        Data     => $main_msg
);

# HTMLのパートを追加 
$msg->attach(
        Type     =>'text/html',
        Disposition =>'attachment',
        Encoding => 'base64',
        Path     => 'attach.html',
        Filename =>'attach.html'
);

# 文字列として出力。
$str = $msg->as_string;
---------------
最後に $str を sendmail 等に食わせる。

# いわゆる HTMLメール として送るなら、

Disposition =>'attachment',
Encoding => 'base64',

は不要かも。
 

R-1 [MAIL] [URL] [WriteDate : Wed Dec 13 19:49:47 2000]

>ふじさん
お返事が遅れて済みません。
丁寧な解説ありがとうございます。
この間の方法でやってみたんですが、人によってはメールが届かない
ことがわかったのでこちらの方法でも試してみることにします。

回答してくださったみなさん、どうもありがとうございました。
回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]