札幌Web制作のシンクグラフィカ

設置者メールの件

こちらの掲示板は終了しました。ご質問などはサポートセンターをご利用ください。

和田様
大変素晴らしいフォームメールを無償で利用させて頂きありがとうございます。
ジオシティーズ(yahoo)で使わせて頂いてますが、送信者宛には返信のメールが届くのですが
(初めは届かなかったけど過去ログでsend.cgiを加工し文章が届く様になった)
設置者宛にはメールが届きません....

私自信も、他のサーバではCGIを使ったBBS等作った事があるのですが
ジオシティーズの場合ちょっと普通と違う感じで困っています。

FROMはYahooの会員アドレスではいけないと記載されているので
config.cgiの中は@mailto = (****@yahoo.co.jp');のようにYahooドメインを記載しています。

過去ログも拝見させて頂きましたが、よく分からなく質問させて頂きました。
ジオシティーズ内にありますメールエラーlogを添付させて頂きます。

お忙しい中恐縮ですがご教授頂きますよう宜しくお願い致します。
足りない情報等ありましたらご指摘下さい。


Re:設置者メールの件
タノリュウ - 2009-03-29 20:31:21追加でYahooに記載された注意事項を記載します。
YahooメールのオプションでFromを設定する欄には@mailto = ('****@yahoo.co.jp');
で記入したアドレスを記載しております。

************以下Yahooページより****************


ジオシティーズのCGI利用環境で、Sendmailを利用できます。

ジオシティーズでは、送信されるメールの送信元メールアドレス(From欄)に以下のいずれかのメールアドレスを設定する必要があります。
Yahoo!メールのメールアドレス(ホームページを開設しているYahoo! JAPAN IDまたはニックネームで作成したYahoo!メールアドレス)


Yahoo!ドメインで取得した独自ドメインのメールアドレス


Yahoo!メールの「メールオプション」にある「メールアドレスの追加・編集・削除」で設定しているメールアドレス
送信先メールアドレス(To欄、Cc欄)は、ホームページの開設者のメールアドレス、または解説者の代理としてメールを受けとることを承認している方のメールアドレスを指定してください。
各メールアドレスの設定方法について詳しくは、「Sendmail機能とは」をご覧ください。

■Sendmailのパスについて
Sendmailのパスは、「/usr/lib/sendmail」と「/usr/sbin/sendmail」のどちらも利用できます。


Re:Re:設置者メールの件
和田 - 2009-03-29 22:51:49設置者宛に届かないっつーことは、たぶん改修を間違ったのではないかなと思われます。
send.cgiを晒せたら晒してください。
Re:Re:Re:設置者メールの件
タノリュウ - 2009-03-29 23:23:50Send.cgiの中は申し訳ありません小生知識がないので何も触っていません
ただ友達に聞いてどこかで
$form{'email'} = '*****@yahoo.co.jp';
Yahooの言ってるFormをどこかで指定しないとダメって言われました...

以下は今のSend.cgi中身です。
宜しくお願い致します。


#!/usr/bin/perl

use CGI::Carp qw(fatalsToBrowser);
use Jcode;
require 'functions.cgi';
require 'config.cgi';

#POSTされたデータを取得
&getpost();

#Cookieの取得
*getCookieData = GetCookie();

if($form{'mode'} ne $null){
if($form{'mode'} eq 'download' && $config{"password"} ne $form{'password'}){
&downloadScreen();
}
elsif($form{'mode'} eq 'download' && $config{"password"} eq $form{'password'} && $config{"password"} ne $null && (-f $config{"log_file"})){
&fileDownload();
}
elsif($form{'mode'} eq 'delete' && $config{"password"} ne $form{'password'}){
&deleteScreen();
}
elsif($form{'mode'} eq 'delete' && $config{"password"} eq $form{'password'} && $config{"password"} ne $null && (-f $config{"log_file"})){
&deleteComplate();
}
else {
print "Content-type: text/html;charset=utf-8\n\n";
print "ERROR CODE" . $error{"code"} . "<br>\n";
}
}
else{
#送信元ドメインのチェック
&domaincheck();
&confcheck();
&spamcheck();
&javascript_check();
#mailform 用環境変数の定義
if($error{"code"} == 0){
&serials();
&expires_check;
if($error_redirect){
&refresh($config{"error_url"});
}
else {
&envMailform();
&logfileCreate();
my($ip_address) = $ENV{'REMOTE_ADDR'};
my(@addr) = split(/\./, $ip_address);
my($packed_addr) = pack("C4", $addr[0], $addr[1], $addr[2], $addr[3]);
my($name, $aliases, $addrtype, $length, @addrs);
($name, $aliases, $addrtype, $length, @addrs) = gethostbyaddr($packed_addr, 2);
if($config{"log_file"} ne $null && $config{"password"} ne $null){
$envs .= "\n\n\[ LOG DOWNLOAD \] " . $config{"url"} . "?mode=download" . "\n";
$envs .= "\[ LOG DALETE \] " . $config{"url"} . "?mode=delete" . "\n";
}
$envs .= "\[ HOST NAME \] " . $name . "\n";
$envs .= "\[ IP ADDRESS \] " . $ENV{'REMOTE_ADDR'} . "\n";
$envs .= "\[ USER AGENT \] " . $ENV{'HTTP_USER_AGENT'} . "\n";
$envs .= "\[ HTTP REFERER \] " . $ENV{'HTTP_REFERER'} . "\n";
if($config{"posted_body"} ne $null){
$config{"body"} = $config{"posted_body"};
}
$config{"body"} .= $envs;
$config{"body"} =~ s/<resbody>/$resbody/g;
$config{"body"} =~ s/<date>/$form{'date'}/g;
$config{"body"} =~ s/<serial>/$form{'serial'}/g;
$config{'subject'} = &encodeJIS($config{'subject'});
$config{'subject'} = Jcode->new($config{'subject'})->mime_encode;
$config{"body"} = &encodeJIS($config{"body"});
if($form{'email'} =~ /[^a-zA-Z0-9\.\@\-\_\+]/ || split(/\@/,$form{'email'}) != 2){
$form{'email'} = $mailto[0];
}
for($cnt=0;$cnt<@mailto;$cnt++){
&sendmail($mailto[$cnt],$form{'mailfrom'},$form{'formname'},$config{"subject"},$config{"body"});
}
if($config{"return_subject"} ne $null && $config{"return_body"} ne $null && $form{'email'} ne $mailto[0]){
$config{"return_body"} =~ s/<resbody>/$resbody/g;
$config{"return_body"} =~ s/<date>/$form{'date'}/g;
$config{"return_body"} =~ s/<serial>/$form{'serial'}/g;

$config{"return_body"} = &encodeJIS($config{"return_body"});
$config{"return_subject"} = &encodeJIS($config{"return_subject"});
$config{"mailfrom"} = &encodeJIS($config{"mailfrom"});

$config{"fromname"} = "$config{'fromname'} <$config{'mailfrom'}>";
$config{'fromname'} = Jcode->new($config{'fromname'})->mime_encode;
$config{'return_subject'} = Jcode->new($config{'return_subject'})->mime_encode;
&sendmail($form{'email'},$config{"mailfrom"},$config{"fromname"},$config{"return_subject"},$config{"return_body"});
}
&refresh($config{"thanks_url"});
}
}
else{
print "Content-type: text/html;charset=utf-8\n\n";
print "ERROR CODE" . $error{"code"} . "<br>\n";
print $error{"info"};
}
}
exit;
Re:Re:Re:Re:設置者メールの件
和田 - 2009-03-29 23:50:14config.cgi内の$form{'mailfrom'}とこにyahooのメールアドレスは設定されていますか?
Re:Re:Re:Re:Re:設置者メールの件
タノリュウ - 2009-03-30 00:05:38和田様

config.cgiの中に$form{'mailfrom'}と言う項目がないのですが....
Re:Re:Re:Re:Re:Re:設置者メールの件
タノリュウ - 2009-03-30 00:08:10和田様
ごめんなさいありました
## 2008-12-30 mailform pro Ver.2.0 config file

##スクリプトのURL
$config{"url"} = 'ttp://' . $ENV{'SERVER_NAME'} . $ENV{'SCRIPT_NAME'};

##リファラードメインチェック / ドメインチェックをしない場合 0
$config{"domain"} = $ENV{'HTTP_HOST'};

##全文英語のスパム候補を除外(0:除外 / 1:除外しない)
$config{"english_spam"} = 0;

##リンク系スパム候補を除外(0:除外 / 1:除外しない)
$config{"link_spam"} = 0;

##sendmailのパス
$config{"sendmail"} = '/usr/sbin/sendmail';

##フォームからの送信先 設定したほうの先頭の#を削除してください
# ひとつの場合
@mailto = ('reibaishi_suimei@yahoo.co.jp');
# 複数の場合 (シングルクォートでくくったメールアドレスをカンマで区切って指定)
#@mailto = ('xxxxx@example.jp','yyyyy@example.jp');

$form{"mailfrom"} = *****@yahoo.co.jp';

で設定しております。
Re:Re:Re:Re:Re:Re:Re:設置者メールの件
タノリュウ - 2009-03-30 00:26:43和田様
何度も申し訳ございません
今DLしたzipを再解凍したのですがやはり
config.cgiの中に$form{'mailfrom'}と言う項目がないのですが

Re:Re:Re:Re:Re:Re:Re:Re:設置者メールの件
和田 - 2009-03-30 07:51:39すいません・・・@mailtoでした。
設定を見る限りでは問題無さそうなんですけどねぇ・・・。ちなみに同じメールアドレスからテストすると片方にしか届かないんですが、それは大丈夫ですか?
Re:Re:Re:Re:Re:Re:Re:Re:Re:設置者メールの件
タノリュウ - 2009-03-30 08:27:37和田様お忙しい中恐縮です。
@mailto = ('******@yahoo.co.jp');
これは設定してあります。
SendMailの複数Addressを取得する部分の前に
$form{'nali'}='****@yahoo.co.jp'を書き込むと依頼先には届くのですが
逆に依頼元には届きません(>_<)

ちなみにulはttp://www.reibaishi.com/top.htm
からメニューのcontactで使わせて頂いております。
Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:設置者メールの件
和田 - 2009-03-30 08:37:58なんすかねぇ・・・。ジオシティーズですものね。
他のCGI使ったほうが早いかもしれませんね。さすがにちょっとわからないです・・・。ごめんなちゃい。
Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:設置者メールの件
タノリュウ - 2009-03-30 23:59:27和田様色々お手間取らせまして本当に申し訳ございませんでした。
本当にジオシティーズには頭にきます。
ただやはりこのフォームメールは本当に素晴らしいのでどうしても使ってみたく...
無償で提供して頂いてるのに心から申し訳なく思います。

もし分かれば教えて下さい
両方届く方法がわかりました。

send.cgiの74行目
for($cnt=0;$cnt<@mailto;$cnt++){
&sendmail($mailto[$cnt],$form{'mailfrom'},$form{'formname'},$config{"subject"},$config{"body"});
の前に
$form{'mailfrom'} = '*******@yahoo.co.jp';

functions.cgiの374行目の後に
mailfrom = '*******@yahoo.co.jp';
$fromname = '*******@yahoo.co.jp';

を追加してやると設置者と返信メールが来ました。
ただ設置者メールには本文がきちんと記載されてますが
返信が今度本文がなくなってしまいました。

本当に恐縮で申し訳ございません。
ここまで解析出来たので是非つかいたいのでご協力お願い出来ないでしょうか?

Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:設置者メールの件
タノリュウ - 2009-03-31 00:19:38追伸

functions.cgiの中に以下の
sub sendmail {
my($mailto,$mailfrom,$fromname,$subject,$body) = @_;
my($sendmail) = $config{"sendmail"};
①$mailfrom = 'reibaishi_suimei@yahoo.co.jp';
      ②$fromname = 'reibaishi_suimei@yahoo.co.jp'
①②両方の場合→設置者には正常なメール、返信メールは空
①だけの場合→設置者にはメール来ない、返信メールは正常
②だけの場合→設置者には正常なメール、返信メールは空

これでもしなにかお分かりなられたら本当に幸いです.....
Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:Re:設置者メールの件
和田 - 2009-03-31 01:32:40あと一歩デスネ!
$fromname = 'reibaishi_suimei@yahoo.co.jp'

$fromname = '<reibaishi_suimei@yahoo.co.jp>';
にしたらいんでないかしら
設置者メールの件
タノリュウ - 2009-03-31 22:35:17和田様....ダメでした(>_<)
何で両方メールが届くようになったのに
いっつもどっちかだけに本文が記載されるのかわかりません(>_<)
凄い頑張ってCGIの関数とかもみたのですが
Yahooでは属性の変更不可
登録してあるYahooメールのみ
CGIを使用するときはttp://cgi~で始まるulになりますし
本当使えないサーバです(>_<)
愚痴になってしまって申し訳ありませんTEST送信500通くらい試したので(>_<)

和田様何故返信メールの本文がなくなるか他にわかりませんか....泣
Re:設置者メールの件
和田 - 2009-03-31 22:48:39う~む・・・。ひとまずサポートフォームより一度ご連絡くださいっ!
詳しくはコッソリと・・・。