新規記事投稿 フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: Perlでmailtoプロトコルを使用したい場合
Date: 1997/07/17 14:32:20

Reference: mesh.npc/00859

7月17日に、一色良子さんは書きました。

>CGIスクリプトをPerlで作成した場合で、下記のようにmailtoのプロトコルは使用
>できないのでしょうか?
>mailtoをhttpに変更した場合は、エラーにならないので、mailtoは使用できないのかと
>思われるのですが、どなたかご存知の方いらっしゃるでしょうか。
>
> print "<A HREF='mailto:isshiki@cim.ed.fujitsu.co.jp'>ISSHIKI</A>";
>
エラーと言うのはサーヴァエラーですか? なら「"」で括った文字列の中で「@」を
エスケープしないで使っているため perl5 の文法エラーになっているのでしょう。
print " ... isshiki\@cim. ..."; の様にする必要がありますね。
そうではなくて、mailto のリンクを辿った時にブラウザがエラーになるのなら
別の理由ですね。

Content-Type: text/html の文書がサーヴァから出力されてきた時に、それが元から
HTML文書なのか CGIが動的に生成したものなのかという事は、クライアントからは
知る術がありませんから、エラーになるかならないかは CGIスクリプトを使った事とは
関係ないですね。あくまでも使用したクライアントが mailto:user@host.domain と言う
URL を理解できるかどうかにかかっています。

URL の形式に付いては RFC1738 で定められていますが、scheme の種類については
たしか別に IANA (Internet Assigned Numbers Authority) でまとめられています。
もっとも mailto は RFC1738 で既に現われている scheme ですから、形式上は URL に
使うことについて何の問題も無いでしょう。もっとも、クライアントが対応しているか
どうかは別の話でしょうね。たしか古い MSIE などは使えなかったんじゃ無かったっけ?

# 例えば同じ、RFC1738 にあると言っても、wais や prospero に付いては対応している
# WWWブラウザはほとんど無いのじゃないかしら。wais データベースはあまり使われて
# いないように思う (使っている人すいません。(^^;) ので、まあ、あれですが、
# prospero って言うのは archie で使っているプロトコルですよね? 対応してても
# 罰は当たらないと思うんだけどなぁ