投稿日:2002年12月03日 作成鷹の巣

No.6697 ANHTTPDからsendmailを使いたいのですが可能でしょうか?



ANHTTPDからsendmailを使いたいのですが可能でしょうか?

No.6697 投稿時間:2002年12月03日(Tue) 12:38 投稿者名:hiro URL:

ANHTTPDでsendmailを使いたいのですが可能でしょうか?もし可能ならわかりやすく書いてあるページを教えてください。
今CGIでショッピングカートを作っていて、計算とかうまくできるのですが、メールが送信できません。よろしくお願いいたします。

メールサーバはArGoSoft Mail ServerのFreeware versionを使っています。


ナオポンさんのsendmaneを使ってみたらどうでしょうか。

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があります.
どれを使うかはあなた次第です.


URLを教えていただいてよろしいですか?

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.6698です。

No.6712 投稿時間:2002年12月04日(Wed) 05:56 投稿者名:カイナン URL:http://yaguma.ath.cx

No.6698


Net::SMTPモジュールの使用例を追記。

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のメールアドレスへ)のメールアドレスに送信も出来るんでしょうか?
もし、可能な場合の参照できるページを教えてください。
よろしくお願いいたします。


フォームメールのCGIで送信先のメールアドレスが自宅メールサーバーではない場合。

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(ブラインド カーボン コピー)を追加改造して、どこにどんな内容が送信されたかを
メールで受信した方が管理が楽です。


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までの記事も読ませて頂きまして
自分なりに色々試しましたが解決しません。
------------------------------------------------
申し訳ありませんが宜しくお願いします。


偽装パケット(IP Spoofing)は、ルータでしゃ断していることが前提です。

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で設定します。

> 自分なりに色々試しましたが解決しません。

頑張って下さいね。


|目次|掲示板|過去ログ目次|▲頁先頭|