No.6697 投稿時間:2002年12月03日(Tue) 12:38 投稿者名:hiro URL:
ANHTTPDでsendmailを使いたいのですが可能でしょうか?もし可能ならわかりやすく書いてあるページを教えてください。
今CGIでショッピングカートを作っていて、計算とかうまくできるのですが、メールが送信できません。よろしくお願いいたします。
メールサーバはArGoSoft Mail ServerのFreeware versionを使っています。
No.6703 投稿時間:2002年12月03日(Tue) 22:14 投稿者名:カイナン URL:http://yaguma.ath.cx
さっそくですがナオポンさんのsendmaneを使ってみたらどうでしょうか.
anhttpdはwindowsです.sendmailはlinuxです.ですからanhttpdでは基本的にsendmailは使えません.
そのためにsendmail.cgi,sendmailclone,sendmane.exeがあります.
どれを使うかはあなた次第です.
No.6710 投稿時間:2002年12月04日(Wed) 04:14 投稿者名:hiro URL:
> さっそくですがナオポンさんのsendmaneを使ってみたらどうでしょうか.
> anhttpdはwindowsです.sendmailはlinuxです.ですからanhttpdでは基本的にsendmailは使えません.
> そのためにsendmail.cgi,sendmailclone,sendmane.exeがあります.
> どれを使うかはあなた次第です.
sendmaneは検索しましたが、みつかりませんでした。URLを教えていただいてよろしいですか?
sendmail.cgiはすぐ見つかりましたが、いくらやっても動きません。この掲示板を見ていると苦戦している人が多いようですね。
僕のレベルでは・・・うーん。
No.6712 投稿時間:2002年12月04日(Wed) 05:56 投稿者名:カイナン URL:http://yaguma.ath.cx
No.6698
No.6715 投稿時間:2002年12月04日(Wed) 07:07 投稿者名:鷹の巣 URL:http://sakaguch.com/
> ANHTTPDでsendmailを使いたいのですが可能でしょうか?もし可能ならわかりやすく書いてあるページを教えてください。 可能です。Windows自宅サーバー用フォームメールの設定例 http://sakaguch.com/CGIsendmail.html を書いていますが、わかりやすいかどうかは、疑問です。 カイナンさんのご投稿内容通り、sendmailのコマンドと同等の擬似sendmailをご使用される方が楽かもしれません。 「Windowsのメールサーバーでフォームメールは無理? - kazu_k 11/25-23:41 No.6574」のスレッドにある プログラム名【sendまね~る Ver. 0.92】sendmane.exe URL: http://hypweb.net/xoops/ が設定しやすいかもしれません。 ナオポンさんのサイトには、質問掲示板もある様ですから、お薦めします。 # 拡張子がexeである実行ファイルは、Webサーバーのドキュメントルート下やエイリアス下には、 # 設置しない方が良いと考えます。 > 今CGIでショッピングカートを作っていて、計算とかうまくできるのですが、メールが送信できません。よろしくお願いいたします。 作っているというのは、Perlでコーディングされているのでしょうか? そうだとしますと、下記に改造例を示しますので、ご参考にして下さい。 # 時間がないので、全くデバッグしておりません。 # 考え方だけを示していますから、試して、うまく動かなければ、ご連絡願います。 ショッピングカートといっても色々、配布サイトがありますので、Kent-Webさん http://www.kent-web.com/ のShopping Cartの例をあげて、説明します。比較の為に同サイトのPostMailのメール送信部分も示します。 ------------------------------------ #│ Shopping Cart v1.2 (2002/11/02) cart.cgiのメール送信部分 # sendmail起動 open(MAIL,"| $sendmail -t"); print MAIL "To: $mailto\n"; print MAIL "From: $in{'email'}\n"; print MAIL "Cc: $in{'email'}\n" if ($in{'cc'}); print MAIL "Subject: $mail_sub\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "X-Mailer: $ver\n\n"; print MAIL $mail_body; close(MAIL); ------------------------------------ #│ PostMail v1.91 (2002/08/14) postmail.cgiのメール送信部分 open(MAIL,"| $mailprog -t") || &error("メール送信に失敗しました"); print MAIL "To: $mailto\n"; print MAIL "From: $email\n"; print MAIL "Subject: $subject2\n"; print MAIL "MIME-Version: 1.0\n"; print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n"; print MAIL "Content-Transfer-Encoding: 7bit\n"; print MAIL "X-Mailer: $ver\n\n"; print MAIL "$mail_body\n"; close(MAIL); ------------------------------------ Perl5(Active Perlを含む)で、上記のメール送信部分をNet::SMTPモジュールを使用した スクリプトに書き換えたものを下記に示します。 参考サイト:http://sakaguch.com/CgiFaq.html#A150 #-------------------------------------- # メール送信 #-------------------------------------- # メール送信Perlスクリプトその1(Net::SMTPモジュール版) より改造 # NETsmtpMail1.pl 2002.08.21 作成:鷹の巣 http://sakaguch.com/ # # 添付ファイルをつけないメールの送信。 # 参考サイト:「Perlでメールを送る」 # http://homepage3.nifty.com/hippo2000/perltips/perlmail.htm use Net::SMTP; # Net::SMTPモジュールを使用 #■□■ メールの設定データ ■□■ my $SMTPserver = 'smpt.provider.com'; # SMTPサーバー名(自宅SMTPサーバーの場合はLAN内のブライベートアドレスや127.0.0.1でも可) my $mail_from = $in{'email'}; # 送信元メールアドレス、postmail.cgiでは、右辺は、$mail my $mail_to = $mailto; # 宛先メールアドレス my $mail_cc = $in{'email'}; # CCメールアドレス my $mail_bcc = $mail_from; # BCC メールアドレス(送信元にBccでメールを送る) my $mail_subject = $mail_sub; # 件名、postmail.cgiでは、右辺は、$subject2 my $mail_honbun = $mail_body; # メール本文 #■□■ メールの設定終わり ■□■ my $SMTP; # オブジェクトの作成 $SMTP = Net::SMTP -> new( $SMTPserver, # SMTPサーバー名を指定 Hello => $SMTPserver, # SMTPドメイン名を指定 Timeout => 60); # 接続待ち許容時間(秒) #ヘッダ部の組み立て $SMTP -> mail($mail_from); # 送信元メールアドレスを指定 $SMTP -> to($mail_to); # 宛先メールアドレスを指定 $SMTP -> cc($mail_cc); # CC(カーボンコピー)先メールアドレスを指定 # $SMTP -> bcc($mail_bcc); # ブラインドCC先メールアドレスを指定、Bcc不要時、コメント行にする。 #データ部の組み立て $SMTP -> data(); $SMTP -> datasend("From:$mail_from\n"); # 送信元(データ部) $SMTP -> datasend("To:$mail_to\n"); # 宛先(データ部) $SMTP -> datasend("Subject:$mail_subject\n"); # 件名 $SMTP -> datasend("\n"); $SMTP -> datasend("$mail_honbun\n"); # 本文 $SMTP -> dataend(); # データ終端、メール送信 $SMTP -> quit; # SMTP接続の終了 ------------------------------------ > メールサーバはArGoSoft Mail ServerのFreeware versionを使っています。 商用でしたら、使用するSMTPサーバーは、プロバイダのSMTPサーバーを使用されることを推奨します。 送信元メールアドレスが携帯電話など場合、メールの受信を拒否されることが多いからです。 どうしても自宅SMTPサーバーを使用される場合は、プロバイダの様に送信元IPアドレスで 自宅SMTPサーバーを中継使用できるように設定して下さい。 (なぜ、中継使用になるかと言いますと、宛先メールアドレスが自宅SMTPサーバーのメールアドレスでないから) ArGoSoft Mail Serverの場合は、Do Not Authenticate Following IP Address欄には、メール送信に 認証を必要としないメールクライアントのIPアドレスを入れて下さい。 今回の場合は、Webサーバー機のプライベートアドレスや自己診断用のIPアドレス(127.0.0.1)になります。 # Windowsサーバーで、CGIから見て、マルチスレッドでメール送りたい場合は、以下のURLです。 # http://sakaguch.com/CgiFaq.html#W170
No.6832 投稿時間:2002年12月11日(Wed) 12:44 投稿者名:nabe URL:
横からすみません。
ANHTTPD、にゃああああ?さんのsendmail、ArGoSoft Mail Serverでサーバーをたてています。
いろいろテスト中です。
> 自宅SMTPサーバーを中継使用できるように設定して下さい。
> (なぜ、中継使用になるかと言いますと、宛先メールアドレスが自宅SMTPサーバーのメールアドレスでないから)
> ArGoSoft Mail Serverの場合は、Do Not Authenticate Following IP Address欄には、メール送信に
> 認証を必要としないメールクライアントのIPアドレスを入れて下さい。
> 今回の場合は、Webサーバー機のプライベートアドレスや自己診断用のIPアドレス(127.0.0.1)になります。
> # Windowsサーバーで、CGIから見て、マルチスレッドでメール送りたい場合は、以下のURLです。
> # http://sakaguch.com/CgiFaq.html#W170
上記のレスからお尋ねするんですが、
フォームメールの着信先を自サーバー以外
(他のブロバイダ-でアクセスしているPCのメールアドレスへ)のメールアドレスに送信も出来るんでしょうか?
もし、可能な場合の参照できるページを教えてください。
よろしくお願いいたします。
No.6842 投稿時間:2002年12月11日(Wed) 18:59 投稿者名:鷹の巣 URL:http://sakaguch.com/
> フォームメールの着信先を自サーバー以外
> (他のブロバイダ-でアクセスしているPCのメールアドレスへ)のメールアドレスに送信も出来るんでしょうか?
出来ます。
> もし、可能な場合の参照できるページを教えてください。
> よろしくお願いいたします。
メールの送信先と受信先は、sendmail.cgiでは、なくてCGI側で設定します。
下記のCGIで
print MAIL "To: $mailto\n";
print MAIL "From: $email\n";
を
print MAIL "To: $email\n";
print MAIL "From: $mailto\n";
に変更するとメールの送信先と受信先が反対になります。
------------------------------------
#│ PostMail v1.91 (2002/08/14)
postmail.cgiのメール送信部分
open(MAIL,"| $mailprog -t") || &error("メール送信に失敗しました");
print MAIL "To: $mailto\n";
print MAIL "From: $email\n";
print MAIL "Subject: $subject2\n";
print MAIL "MIME-Version: 1.0\n";
print MAIL "Content-type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encoding: 7bit\n";
print MAIL "X-Mailer: $ver\n\n";
print MAIL "$mail_body\n";
close(MAIL);
------------------------------------
ArGoSoft Mail Serverの場合は、こちら
http://sakaguch.com/CGIsendmail.html
の項3の注2に書いています。以下に内容を抜粋します。
フォームメールのCGIで送信先のメールアドレスが自宅メールサーバーではない場合
「SMTP Authentication」タブの「Do NOT Authenticate Following IP Address」欄に
「127.0.0.1」を入力して、中継を許可して下さい。
又、CGIにBcc(ブラインド カーボン コピー)を追加改造して、どこにどんな内容が送信されたかを
メールで受信した方が管理が楽です。
No.6865 投稿時間:2002年12月13日(Fri) 11:33 投稿者名:nabe URL:
返信遅くなってすみません。
おかげ様で無事送信することが出来ました。
ありがとうございました。
新たにお尋ねしたいのですが宜しくお願いします。
------------------------------------------------
>「SMTP Authentication」タブの「Do NOT Authenticate Following IP Address」欄に「127.0.0.1」を入力して、中継を許可
ここで言う「中継を許可」は第三者不正中継を招くような事にはなりませんでしょうか?
SetMailServer.htmlの■3.7.SMTP Authenticationタブの設定項目の記述の中で
>サーバ機自身のIPアドレス(127.0.0.1)は、メール開通試験を行うのに使用しますので、必ず入力して下さい。又、メール開通試験後は、必ず削除して空欄にして下さい。
>CGIからメール送信を行う場合は、サーバー機のプライベートアドレスを入れる場合もあります。
この状態でも不正中継テストでは正常:中継は拒否されました。と結果は出ましたが不安なのでお尋ねします。
それともう一点
> CGIにBcc(ブラインド カーボン コピー)を追加改造して、どこにどんな内容が送信されたかを
> メールで受信した方が管理が楽です。
> sendmail.cgiの場合は、「Cc」「Bcc」と書いて下さい。複数の宛先に送る場合は、「,」で、区切って下さい。
> $mailto = 'user\@example.com'; # 送信先メールアドレス
> $mailcc = 'cc1user\@example.com,cc2user\@example.com'; # カーボンコピー送信先メールアドレス
> $mailbcc = 'bcc1user\@example.com,bcc2user\@example.com'; # ブラックカーボンコピー送信先メールアドレス
> $mailfrom = 'senduser@example.com'; # 送信元メールアドレス
> .....中略.....
> open (MAIL,"| $mailprog -t") || &error("メール送信に失敗しました");
> print MAIL "To: $mailto\n";
> print MAIL "Cc: $mailcc\n";
> print MAIL "Bcc: $mailbcc\n";
> print MAIL "From: $mailfrom\n";
これはCGIとは、Active Perl、sendmail.cgi、それともフォームメールのCGIへでしょうか?
追加改造の仕方がわかりません。
過去ログのP 0006-7 No,3829~3878までの記事も読ませて頂きまして
自分なりに色々試しましたが解決しません。
------------------------------------------------
申し訳ありませんが宜しくお願いします。
No.6868 投稿時間:2002年12月13日(Fri) 13:39 投稿者名:鷹の巣 URL:http://sakaguch.com/
> >「SMTP Authentication」タブの「Do NOT Authenticate Following IP Address」欄に「127.0.0.1」を入力して、中継を許可
> ここで言う「中継を許可」は第三者不正中継を招くような事にはなりませんでしょうか?
> SetMailServer.htmlの■3.7.SMTP Authenticationタブの設定項目の記述の中で
> >サーバ機自身のIPアドレス(127.0.0.1)は、メール開通試験を行うのに使用しますので、必ず入力して下さい。又、メール開通試験後は、必ず削除して空欄にして下さい。
> >CGIからメール送信を行う場合は、サーバー機のプライベートアドレスを入れる場合もあります。
> この状態でも不正中継テストでは正常:中継は拒否されました。と結果は出ましたが不安なのでお尋ねします。
自己診断用IPアドレス(127.0.0.1)は、自分自身を意味します。
従って、インターネット側からアクセス元を127.0.0.1と偽装してくるパケット(IP Spoofing)は、
ルータのパケットフィルタリングでしゃ断されていることが前提です。
> それともう一点
> > $mailbcc = 'bcc1user\@example.com,bcc2user\@example.com'; # ブラックカーボンコピー送信先メールアドレス
ブラック(誤)ではなく、ブラインド(正)の間違いでした。すみません。
> > $mailbcc = 'bcc1user\@example.com,bcc2user\@example.com'; # ブラックカーボンコピー送信先メールアドレス
> > print MAIL "Bcc: $mailbcc\n";
> これはCGIとは、Active Perl、sendmail.cgi、それともフォームメールのCGIへでしょうか?
フォームメールのCGIへ追加して下さい。
送信元メールアドレスや送信先メールアドレスは、全てフォームメールで設定します。
# 送信に利用するSMTPサーバーは、sendmail.cgiで設定します。
# 送信に利用するSMTPサーバーで認証に利用するメールアドレスは、sendmail.cgiで設定します。
> 自分なりに色々試しましたが解決しません。
頑張って下さいね。