新・元地方の中規模印刷会社で苦悩するWebデザイナー改めWebディレクターの日記

自由な20代、窮屈な30代を経て、遂に40代になっちまったWebディレクター&パソコン講師の覚書と思う言(こと)。略称【ちほちゅう】

*

Yahoo!ジオプラスで送信フォームが動かない

   

  • このエントリーをはてなブックマークに追加

1年以上前の記事です。内容が古い可能性があります。

ずいぶん前にplot-factory.com配下から独自ドメインへ移転したパソコン教室の生徒さんのサイトは現在Yahoo!ジオシティーズのジオプラスを使っている。
今までは送信フォームの部分だけはplot-factory.comに飛ばして処理していたのだが、知らない間にジオプラスでもsendmailが使えるようになっていたのでこれを機に完全移転を考えた。
ところが、今まで使っていたプログラムをそのまま移しても動かない。
以下、移転する際に注意する点と最大の難点を紹介する。

ヤフー・ジャパン公式ガイド 2005 ジオシティーズ&コミュニティ編ヤフー・ジャパン公式ガイド 2005 ジオシティーズ&コミュニティ編
著者:ユニゾン
販売元:ソフトバンククリエイティブ
発売日:2005-03-26
おすすめ度:4.0
レビューを見る

スポンサーリンク
 

通常、気をつけなければならないのはperlのパスとsendmailのパス。
これにパーミッション(アクセス権)の設定だけ押さえておけば、大概のホスティングサービスで動くはず。

Yahoo!ジオプラスの場合は
■perlのパス /usr/bin/perl
■sendmailのパス /usr/lib/sendmail 又は /usr/sbin/sendmail
以上を元スクリプトから書き換えてアップロード。
なお、Yahoo!ジオプラスは拡張子を元にパーミッションを自動で設定してくれるので設定は不必要。
(CGIが使える設定にしなければならない、CGI用のURLでないとCGIが使えない、等、Yahoo!にはいろいろとハードルがあるがそれらしっかりなされているのが前提)

これで動いていると思っていた。
「思っていた」というのは、動作上まったくエラーが出なかったからだ。
ところが、その場でメールを確認してもらっても届いていない。
何度やっても一緒、エラーは出ないが届かない。

そこで、ftpでアクセス。geo_cgi_private内をのぞいてみるとmailError.logという名前のファイルが作られていた。
そこには、

GMT 2009/05/23 00:45:41 ERROR 301: 指定した’From’がYahoo!メールで使用可能か確認してください。http://geocities.yahoo.co.jp/v/originalcgi/sendmail/

と言うエラーが並んでいる。

上記URLにアクセスしてみるとこんな一文を見つけた。
Yahoo!ジオシティーズ – Sendmail

お客様どうしの大切な情報の保護のために、セキュリティ面の対策として、送信されるメールの送信元メールアドレス(From欄)が、Yahoo!メールの「メールオプション」にある「メールアドレスの追加・編集・削除」で設定しているメールアドレスもしくはYahoo!メールのメールアドレスの場合のみSendmail機能を設定できます。

「From欄」ってのは通常のメール送信の場合、送信元のアドレスが書き込まれる。
僕が普段使っている送信フォームCGIもそれにならって「From欄」にはフォームで入力された入力者(送信者)のメールアドレスが書き込まれるようになっていた。
これだったら、届いたメールに返信するだけで送信者宛のメールが作れるからだ。
ただし、Yahoo!ジオプラスではこの技が使えないらしい。

原因がわかったところで対策です。

【対策その1】
プログラム側で「From欄」を送信先と同じアドレスにしてしまう。

print OUT “From: xxxxx@yahoo.co.jp”; # たとえばこんな感じ

これが一番手っ取り早かったのでこちらで設定しました。

【対策その2】
Yahoo!メールで「From欄」に使えるメールアドレスを設定する。
上記Yahoo!ジオシティーズの説明の通り、Yahoo!メールの「メールオプション」から設定する方法。
「メールオプション」が見あたらない場合は「前のバージョンに戻す」をクリックしてから「メールオプション」→「メールアドレスの追加・編集・削除」。
こちらで「From欄」に使っているメールアドレスを設定する。

ただし、どちらの方法を使っても送信元メールアドレスに本来の送信元メールアドレス(フォーム入力者のメールアドレス)を設定することはできません。

 - セキュリティ, プログラミング

アドセンス広告メイン

Comment

  1. さくら より:

    まったく同じ問題で困っています。
    ご説明の中で
    >こちらで「From欄」に使っているメールアドレスを設定する。
    これは、yahooIDで取得したメールアドレスを入力するということでしょうか?
    不具合ながらもこれをやれば一応メールは届きますか?
    上記を行ったつもりですが、届きません。
    サポートにメールしましたが、ご紹介の下記の画面を見てくださいとの回答で、非常に困っています。
    Yahoo!ジオシティーズ – Sendmail
    まだ一度もメールが届かず困ってしまっています。
    他のサーバにUPした場合はOKなんです。
    でもジオシティーズにUPする必要があるのです。

  2. のりさ より:

    CGIプログラムの方で送信者がフォーム入力したE-mailを「From欄」に設定している場合は「Yahoo!メール」側で上記設定をしても動きません。
    おそらく、多くのメール送信プログラムはフォーム入力したE-mailを「From欄」に設定していると思われるので、結局CGIプログラムの改造が必要になっちゃいます。
    だもんで、僕は【対策その1】を使ったということです。
    ちなみに、Outlook Expressの場合「From欄」とは、該当のメールだけ開いた状態にしたときに「送信者」のところに表示されているメールアドレスです。
    従って、一度、しっかり動くサーバーに同じプログラムを設置し、送信テストをした後に受信したメールを確認。
    「送信者」のところに表示されているメールアドレスが何になっているか確認してみるといいと思います。
    これが、フォーム入力したメールアドレスになっている場合は送信システムの改造が必要となります。

  3. さくら より:

    ご親切に解説ありがとうございます。
    現在対策2を行いましたが、未解決です。
    つまり、メールオプションでfrom欄にメールアドレスを設定している状態。
    他のサーバでテストして受信したメールの「from欄」はnomail@xxx.xxx.or.jp こんな風になっています。
    プログラムに詳しくないので初歩的な質問ですが、
    対策1の下記は、cgiファイル内のどこへ書き込めばいいのでしょうか?
    「」内のみ書くのでしょうか?
    「print OUT “From: xxxxx@yahoo.co.jp“; 」# たとえばこんな感じ
    上記で解決したとしても、from欄が送信者が入力したアドレスにはならないということでしょうか?
    よろしくお願いします。

  4. のりさ より:

    「from欄」が「nomail@xxx.xxx.or.jp」で固定されているようでしたら、【対策その2】で「From欄」に使えるメールアドレスを「nomail@xxx.xxx.or.jp」に設定してみてどうでしょうか?

  5. さくら より:

    その節はお世話になりました。
    メールが届くようになりました。
    でも、from欄は、xxxxx@yahoo.co.jpで受信するので、返信することは出来ません。
    このままで運営することにしました。
    ジオシティーズのサポートはcgiはしないということで困りました。
    どうもありがとうございました。

  6. オフィスクゥ より:

    昔のスレッドに書き込み申し訳ありません。
    上の方と同じところでかれこれ3日ほどつまっております…。
    メールオプションの方で設定したのですが、とどかず参っております…。
    print OUT “From: xxxxx@yahoo.co.jp“; # はCGIのどの部分に
    挿入すればいいでしょうか?お忙しい中申し訳ありませんが、
    よろしくお願いします。

  7. のりさ より:

    > オフィスクゥさん
    プログラム内に
    print OUT “From: <メールアドレス>“;
    といった表記(もしくはそれに似た表記)があると思います。
    そこの<メールアドレス>のドメインを「yahoo.co.jp」に書き換えてみてどうでしょうか?
    つまりこんな感じです。
    print OUT “From: xxxxx@yahoo.co.jp“;

  8. 星野 より:

    初めまして、YahooのジオプラスにしてCGI設置して同じようになってしまい困り果ててここに辿り着きました。
    以前はインフォシークを借りていたのですが今年の5月で
    サービスが終了してしまうためです。
    CGIはhttp://www.gnbnet.com/こちらのCGI→同人誌通販を設置
    しております。
    症状としては、当方に控えメールが届かない状態です。
    相手方にはメール控えが届きます。(別アカウントで確認)
    対策2のヤフーアドレスを記載しているのですが届きません。
    最初設置した時は届いた気がしたのですが…(汗)
    気が付いたら届かない状態になってました。
    対策1をやりたいとおもってprint OUT~を探してみたのですが、adominの中にあるのはprint OUT @sorted;やprint OUT @news; print OUT substr($read_data, $pos2, $size);
    これだけで他のファイルにはprint~を検索するもありませんでした。
    対策1を入れるのが一番良さそうなのですがどのファイルに入れたらよいのか謎です、大変お手数ですがもしご教授いただけそうでしたらお願いいたします。

  9. 星野 より:

    すみません、何とかかんとか自己解決出来ました(;´д⊂)
    plファイルの中のFrom: $QUERY{‘email’}\n”をFrom: $mailtos[0]\nに
    書き換えたらきちんと自分のメアドがfromになりました。
    お騒がせしました。削除が出来なかったので解決カキコ
    という形にさせて頂きます。
    貴重な情報ページでした、有難うございます。

Message

メールアドレスが公開されることはありません。

  関連記事

no image
meta refreshを使わずに自動でリンクに飛ばす方法

1年以上前の記事です。内容が古い可能性があります。CGIスクリプトの仕様で、1つ …

OAuthとOpenIDにセキュリティホール(脆弱性)、Facebookなどにも影響が

1年以上前の記事です。内容が古い可能性があります。世の中セキュリティホールありす …

その気になればスマホのデータは丸見え。「テロ対策特殊装備展(SEECAT) 」が楽しそう

1年以上前の記事です。内容が古い可能性があります。そーいえば、最近、展示会いって …

秀丸(テキストエディタ)で全文検索

1年以上前の記事です。内容が古い可能性があります。知りませんでしたテキストエディ …

Android(アンドロイド)アプリの3つに1つはマルウェア付き

1年以上前の記事です。内容が古い可能性があります。これはひどいニュース。なんと、 …

「Internet Explorer」をクラッシュさせるCSSコード

1年以上前の記事です。内容が古い可能性があります。なんか、他にもありそうですけど …

暗号化の技術には期限がある。今の技術(RSA1024)が安全なのは2019年まで

1年以上前の記事です。内容が古い可能性があります。なるほど。セキュリティの専門家 …

インターネットもパンデミック【GENOウイルス】

1年以上前の記事です。内容が古い可能性があります。実世界では新型インフルエンザが …

WordPress(ワードプレス)でヘッダー部に入るCSSリンクをページごとに変える方法 #wp

1年以上前の記事です。内容が古い可能性があります。最近では、「サイト作成」=「C …

no image
一度見たFlashを見せない方法

1年以上前の記事です。内容が古い可能性があります。最近は減ってきているけれど、 …

血液型オヤジ