カレッヂ |
質問者 SYS
投稿日 9/11(火) 10:33:45
プロバイダーhi-hoの個人エリアでrescueさんの簡易バスケットを使っているのですが 最後まで機能して肝心のメールが来ません sendmailの設定はhi-hoのCGI詳細に書いてある $sendmail = '/usr/bin/sendmail';を $sendmail = './ssendmail'; としているのですがメールが来ません、お願いしますm(__)m |
回答者 呑兵衛
[削除]
投稿日 9/13(木) 18:20:32
呑兵衛@大阪です。 レスキューさんの説明では、 # Hi-Hoをご利用の方は$sendmail設定の1行を次のものに入れ替えてください. # (/cgi-bin/内にHi-Ho提供のssendmailを別途設置すること) # $sendmail = "$ENV{'HOME'}/cgi-bin/ssendmail"; $hiho = 1; となっています。 HI-HOの説明でも、 9.ファイルの書き込み、読み込みをCGIで行う場合には、必ずお客様のホームディレクトリ (環境変数$ENV{'HOME'})を基準にお書き下さい。 ex.お客様のhtmlディレクトリ下のファイルにアクセスする場合 "$ENV{'HOME'}/html/...." (絶対パスでは指定できません。) になってますね。 |
質問者 SYS
[削除]
投稿日 9/13(木) 18:45:39
お返事有難うございます。 sendmailの設定を替えてみたのですが 駄目でした(T_T) 先程レスキューさんに問い合わせてみたところHi−Hoでそのまま使えるのはV3、4、5 との事だそうです 改造しようと思えば大変なんでしょうね、初心者の私には無理そうです(^_^;) |
回答者 呑兵衛
[削除]
投稿日 9/14(金) 01:40:03
変なサーバーのようです・・。 sub sendmail 以下を &jis("$subject"); if (!open(OUT,"| $sendmail -f \"$email\" -s \"$subject\" $mailto")) { &error(略); } として、ヘッダーの print OUT "To: $email\n"; print OUT "From: $email\n"; &jis("Subject: $subject"); print OUT "$msg\n"; を取り去ります。あとはおなじ。 オプションの -f が From 、-s が Subject に当たるそうです。 subject が文字化けしたら base64エンコードをします。その場合は google ででも探してください。 |
回答者 呑兵衛
[削除]
投稿日 9/14(金) 01:48:46
-s \"$subject\" ではなく -s \"$msg\" でした。 |
質問者 SYS
[削除]
投稿日 9/14(金) 11:35:45
ありがとうございます、できました(^.^) 仰る通りタイトルが文字化しました、base64を使うとはいったいどういう事なのでしょうか? ダウンロードしてみたもののどう使っていいのか分かりません 何度もすみません(^_^;) |
回答者 しあわせのツボ
[削除]
投稿日 9/14(金) 14:20:08
消極的な解決策: SubjectにASCII文字だけを使います。 そうすれば化けません。 普通の解決策: Base64のエンコードライブラリorモジュールを使います。 調べてもわからない時は呑兵衛さんが答えてくれるでしょう。 手抜きの解決策: Base64へのエンコード自体は10行ちょっと書き足せば可能なので、それで済ませます。 楽ですし動作も軽いのですが、ライブラリを使うのに比べやや不確実です。 究極の解決策: レスキューさんにBase64エンコードを実装するようお願いします。 この問題はたびたび出るので、せめてFAQに載せてほしいのですが…。 |
回答者 呑兵衛
[削除]
投稿日 9/15(土) 00:37:49
普通の解決策、いきます。 base64.plのダウンロード先 ftp://ftp.dti.ad.jp/.1/lang/CPAN/scripts/mailstuff/base64.pl base64.plの使い方を含む、Form Mail の解説 http://www.watch.impress.co.jp/internet/www/article/1999/1122/special.htm 下の一行を、require './jcode.pl'; or require 'jcode.pl'; の下に追記 require './base64.pl'; &jis("$subject"); に続いて $msg = &base64'b64encode($msg); chomp($msg); $msg = "=?ISO-2022-JP?B?$msg?="; として、 -s \"$msg\" 以上、base64エンコードの処理です。 おまけ GOOGLE 検索は 英文字(半角) と 全角日本語の 語句をスペースで区切り検索します。 必ず日本語で書かれたページの結果になります。 また、GOOGLEの検索窓で、 検索文字 site:www.rescue.ne.jp とすると、この「技の裏」ページを含む、このサイトだけの文字列検索ができます。 |
回答者 呑兵衛
[削除]
投稿日 9/16(日) 11:23:12
すみません。 base64のダウンロード先がデッドリンクになっていました。 ftp://ftp.dti.ad.jp/pub/lang/CPAN/scripts/mailstuff/base64.pl です。 それから、Subject の文字列長が19文字(全角)、言い換えると38バイトを超えると 文字化けする癖があります。 |
質問者 SYS
[削除]
投稿日 9/22(土) 18:22:06
有難う御座います。 お返事遅れましてすみません、 何らかの手違いで返答出来てませんでした 色々勉強になりました、皆さん本当に有難う御座いますm(__)m |
このページは終了したので返信(回答)は書きこめません
Web裏技 |