Yahoo!ジオプラスで送信フォームが動かない
1年以上前の記事です。内容が古い可能性があります。
ずいぶん前にplot-factory.com配下から独自ドメインへ移転したパソコン教室の生徒さんのサイトは現在Yahoo!ジオシティーズのジオプラスを使っている。
今までは送信フォームの部分だけはplot-factory.comに飛ばして処理していたのだが、知らない間にジオプラスでもsendmailが使えるようになっていたのでこれを機に完全移転を考えた。
ところが、今まで使っていたプログラムをそのまま移しても動かない。
以下、移転する際に注意する点と最大の難点を紹介する。
ヤフー・ジャパン公式ガイド 2005 ジオシティーズ&コミュニティ編
著者:ユニゾン
販売元:ソフトバンククリエイティブ
発売日:2005-03-26
おすすめ度:
レビューを見る
通常、気をつけなければならないのは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欄」を送信先と同じアドレスにしてしまう。
これが一番手っ取り早かったのでこちらで設定しました。
【対策その2】
Yahoo!メールで「From欄」に使えるメールアドレスを設定する。
上記Yahoo!ジオシティーズの説明の通り、Yahoo!メールの「メールオプション」から設定する方法。
「メールオプション」が見あたらない場合は「前のバージョンに戻す」をクリックしてから「メールオプション」→「メールアドレスの追加・編集・削除」。
こちらで「From欄」に使っているメールアドレスを設定する。
ただし、どちらの方法を使っても送信元メールアドレスに本来の送信元メールアドレス(フォーム入力者のメールアドレス)を設定することはできません。
アドセンス広告メイン
関連記事
-
スパムメールのタイトル
1年以上前の記事です。内容が古い可能性があります。僕もたぶんにもれずメールアドレ …
-
いよいよ魔の手がLINE(ライン)にも。最新のフィッシング詐欺のターゲットはLINE(ライン)
1年以上前の記事です。内容が古い可能性があります。フィッシング詐欺がこのところ再 …
-
Flashの時間稼ぎスクリプト
1年以上前の記事です。内容が古い可能性があります。Flashを編集していて、この …
-
プロット・ファクトリーがYahoo!でスパム判定【第2章】 (5/8追記)
1年以上前の記事です。内容が古い可能性があります。プロット・ファクトリーとは開店 …
-
暗号化の技術には期限がある。今の技術(RSA1024)が安全なのは2019年まで
1年以上前の記事です。内容が古い可能性があります。なるほど。セキュリティの専門家 …
-
Androidスマホの「パターンロック」は確率以上にセキュア。パスコードロックよりも安全かも
1年以上前の記事です。内容が古い可能性があります。スマートフォン(スマホ)にロッ …
-
gumiをやっている人は個人情報に注意しよう
1年以上前の記事です。内容が古い可能性があります。SNSをやっていると、そこだけ …
-
Facebookでシェアした投稿(ポスト)に位置情報を入れない方法
1年以上前の記事です。内容が古い可能性があります。Facebook(フェイスブッ …
-
SpyBotでスキャン中に突如シャットダウン
1年以上前の記事です。内容が古い可能性があります。いつからだかわかりませんが、ス …
-
ツイッター(twitter)のリストに潜む落とし穴
1年以上前の記事です。内容が古い可能性があります。ツイッター(twitter)に …
Comment
まったく同じ問題で困っています。
ご説明の中で
>こちらで「From欄」に使っているメールアドレスを設定する。
これは、yahooIDで取得したメールアドレスを入力するということでしょうか?
不具合ながらもこれをやれば一応メールは届きますか?
上記を行ったつもりですが、届きません。
サポートにメールしましたが、ご紹介の下記の画面を見てくださいとの回答で、非常に困っています。
Yahoo!ジオシティーズ – Sendmail
まだ一度もメールが届かず困ってしまっています。
他のサーバにUPした場合はOKなんです。
でもジオシティーズにUPする必要があるのです。
CGIプログラムの方で送信者がフォーム入力したE-mailを「From欄」に設定している場合は「Yahoo!メール」側で上記設定をしても動きません。
おそらく、多くのメール送信プログラムはフォーム入力したE-mailを「From欄」に設定していると思われるので、結局CGIプログラムの改造が必要になっちゃいます。
だもんで、僕は【対策その1】を使ったということです。
ちなみに、Outlook Expressの場合「From欄」とは、該当のメールだけ開いた状態にしたときに「送信者」のところに表示されているメールアドレスです。
従って、一度、しっかり動くサーバーに同じプログラムを設置し、送信テストをした後に受信したメールを確認。
「送信者」のところに表示されているメールアドレスが何になっているか確認してみるといいと思います。
これが、フォーム入力したメールアドレスになっている場合は送信システムの改造が必要となります。
ご親切に解説ありがとうございます。
現在対策2を行いましたが、未解決です。
つまり、メールオプションでfrom欄にメールアドレスを設定している状態。
他のサーバでテストして受信したメールの「from欄」はnomail@xxx.xxx.or.jp こんな風になっています。
プログラムに詳しくないので初歩的な質問ですが、
対策1の下記は、cgiファイル内のどこへ書き込めばいいのでしょうか?
「」内のみ書くのでしょうか?
「print OUT “From: xxxxx@yahoo.co.jp“; 」# たとえばこんな感じ
上記で解決したとしても、from欄が送信者が入力したアドレスにはならないということでしょうか?
よろしくお願いします。
「from欄」が「nomail@xxx.xxx.or.jp」で固定されているようでしたら、【対策その2】で「From欄」に使えるメールアドレスを「nomail@xxx.xxx.or.jp」に設定してみてどうでしょうか?
その節はお世話になりました。
メールが届くようになりました。
でも、from欄は、xxxxx@yahoo.co.jpで受信するので、返信することは出来ません。
このままで運営することにしました。
ジオシティーズのサポートはcgiはしないということで困りました。
どうもありがとうございました。
昔のスレッドに書き込み申し訳ありません。
上の方と同じところでかれこれ3日ほどつまっております…。
メールオプションの方で設定したのですが、とどかず参っております…。
print OUT “From: xxxxx@yahoo.co.jp“; # はCGIのどの部分に
挿入すればいいでしょうか?お忙しい中申し訳ありませんが、
よろしくお願いします。
> オフィスクゥさん
プログラム内に
print OUT “From: <メールアドレス>“;
といった表記(もしくはそれに似た表記)があると思います。
そこの<メールアドレス>のドメインを「yahoo.co.jp」に書き換えてみてどうでしょうか?
つまりこんな感じです。
print OUT “From: xxxxx@yahoo.co.jp“;
初めまして、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を入れるのが一番良さそうなのですがどのファイルに入れたらよいのか謎です、大変お手数ですがもしご教授いただけそうでしたらお願いいたします。
すみません、何とかかんとか自己解決出来ました(;´д⊂)
plファイルの中のFrom: $QUERY{‘email’}\n”をFrom: $mailtos[0]\nに
書き換えたらきちんと自分のメアドがfromになりました。
お騒がせしました。削除が出来なかったので解決カキコ
という形にさせて頂きます。
貴重な情報ページでした、有難うございます。