sendmail

タグの編集
投稿者 あきら  (社会人) 投稿日時 2009/8/31 21:40:58
VBのwindowsプログラミングでsendmailを使用することはできないのですか?
投稿者 ?-??  (その他) 投稿日時 2009/8/31 22:22:36
■投稿者 あきら   (社会人)   投稿日時 2009/08/31 12:40:58  さんは書きました。
> VBのwindowsプログラミングでsendmailを使用することはできないのですか? 

Windowsにsendmailってあったっけ?
投稿者 刈谷勇  (社会人) 投稿日時 2009/9/1 03:23:27
あきらさん、こんにちは。

メールを送りたいという要件でいいのですよね。
とりあえず、MSDNのページをのせておきます。
http://msdn.microsoft.com/ja-jp/library/cc440879.aspx?ppud=4

ここの掲示板に書くのもいいですが、早急に知りたい場合はインターネットで検索をかけたほうが早いですよ。
今回の場合は、MSNで「VB メールの送信」をキーワードにして検索したら、真っ先にMSDNのページが引っかかりました。
投稿者 るしぇ  (社会人) 投稿日時 2009/9/1 04:16:29
sendmail とだけ言われると UNIX のメールサーバソフトウェアの
話になるみたいです。もしそんな話なら、VB 以前の説明が無いと
こちらでは内容を把握できそうにありません。。。
投稿者 あきら  (社会人) 投稿日時 2009/9/3 10:04:56
すみません
詳しく聞きたいのですが、
VB.NETというのを使わなければならないのですか?
私が使用しているのはVB2006なのですがそれでも作成できますか?
投稿者 あきら  (社会人) 投稿日時 2009/9/3 10:07:08
すみません。間違えです。
VB2008を使用しています。
投稿者 (削除されました)  () 投稿日時 2009/9/3 12:55:14
(削除されました)
投稿者 ?-?  (その他) 投稿日時 2009/9/3 17:47:17
> すみません
> 詳しく聞きたいのですが、

何を聞きたいのでしょう?

メールを送信したいという話であれば、既に刈谷勇さんが書いてありますよ。

sendmailにこだわる必要はあるのかな?
聞きたいのは「やりたい事をやるための方法」かな?
それとも「やりたい事をやるための手段が決まっていてそれを使う方法」なのかな?

メールを送信するために、メールサーバへの接続の方法(各種SMTPサーバへの接続、つまりIISでもpostfixでもqmailでも何でもいい)かな?

それとも、sendmailのインストール方法?
(ってかsendmailって何か知ってる?)
投稿者 刈谷勇  (社会人) 投稿日時 2009/9/3 18:29:57
Wrote by あきらさん
>VB.NETというのを使わなければならないのですか?

たぶん、MSDNのページを見てもらった中でVB.NETという言葉が使われていたための質問と仮定します。
紹介したページはVB2005のものですが、VB2008でも使えるとおもいます。


あと、?-?さんも書かれていますが質問したい内容はなるべく細かく書いた方が解決の近道ですよう。
今回も私の推論が入った回答になっているので、意図した回答になっているかわかりませんし・・・
投稿者 るしぇ  (社会人) 投稿日時 2009/9/3 20:50:19
そもそもあきらさんのいうsendmailが何か?から
こちらには伝わっていないです。
投稿者 あきら  (社会人) 投稿日時 2009/9/3 23:12:26
私が言うsendmailというのは送信元を自分で決めることが出来るメール送信です。
私はVBよりサーバーサイドのスクリプト(phpなど)が専門で、ウィンドウズプログラミング
でも同じようなものが作れればという考えでVBを始めました。
なのでこちらではそのようなメール機能のことを何と言うのかわからなかったので
sendmailとさせていただきました。
わかりずらくて申し訳ありません。
投稿者 ?-?  (その他) 投稿日時 2009/9/3 23:33:28
> 私が言うsendmailというのは送信元を自分で決めることが出来るメール送信です。
よくわかりませんが、メールサーバを作りたい?

サーバーサイドのスクリプトだって、メール送信するときにはメールサーバ指定してるでしょ?
(もしくは、mailコマンドを実行している?)

VBでメールを送信するものを作ることは可能だけど、送信先サーバへのハンドシェイクとかも作ったりするの?

ただ単純に、すでにあるメールサーバに接続してメール送信したいなら、既に刈谷勇さんが書いてありますよ。

んで、確認。
sendmail(というプログラム)を使うことではなく、メール送信をしたいという(手段を実現する方法が知りたい)のが要望なんだよね?
投稿者 あきら  (社会人) 投稿日時 2009/9/4 01:17:59
>サーバーサイドのスクリプトだって、メール送信するときにはメールサーバ指定してる
>でしょ?
>(もしくは、mailコマンドを実行している?)

sendmailの場合はサーバー指定はしません。単純に
mb_send_mail($to,$sub,$body,"From:$from");
とやるだけです。
PHPの場合はですが・・・perlの場合は知りません。


>VBでメールを送信するものを作ることは可能だけど、送信先サーバへのハンドシェイクとか
>も作ったりするの?

実際にもうメール送信するものは作りました。
でもそれは自分が使用しているSMTPサーバーを指定しなければなりません。
例えばですが、こんな人は絶対にいないかもしれませんが、メールアドレスがない人だっているかもしれません・・・
今はYahooメールとかもありますから、それを利用できるかもしれませんが、アドレスもなく、Yahooメールもやってないと言う人が、携帯から送信したようにしたいということになればそれを使うという感じです。言わば匿メールのようなものです。
投稿者 ?-?  (その他) 投稿日時 2009/9/4 02:11:43
> sendmailの場合はサーバー指定はしません。単純に
> mb_send_mail($to,$sub,$body,"From:$from");
> とやるだけです。
それやると、そのマシンで動いているデフォルトのメールサーバに送信しているだけでしょ?
つまり、PHPが動いているサーバのデフォルトのメールサーバを利用しているだけ。
PHP->マシンが動いているmailサーバ機能->相手先メールサーバ
てなところか?
たぶん、メールサーバ無ければエラーで送信できないんじゃない?
(Windows PHPで試してみればたぶん、送信できないんじゃないかと。)

メールアドレスない人がメール送信するということは有るとは思いますが、残念ながら、SPAM対策の関連で、利用ISP指定のサーバを経由しないと送信できない可能性がありますよ。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/9/4 03:16:29
> sendmailの場合はサーバー指定はしません。
指定する場所が違うだけだと思いますよ。
現在の SMTP は、localhost などになっているのでは無いでしょうか。
http://sakura-dream.com/2008/07/mb-send-mailsmtp.html

> 実際にもうメール送信するものは作りました。
どのようなコードで実装したのでしょうか?

> メールアドレスがない人だっているかもしれません・・・
メールアドレスが無い人に向かって、メールを送る事は出来ませんが、
メールアドレスが無い人が、メールアドレスを持つ人にメールを送る事は可能です。
(ただし、お使いの SMTP サーバーがそれを許可しているかどうかは別問題ですが)
投稿者 るしぇ  (社会人) 投稿日時 2009/9/4 03:52:09
UNIX は詳しくないけど、UNIX メールサーバ上というのが前提みたいな話に
聞こえました。開発してた頃に、そのあたりの設定までサーバ管理者に聞いた
事って無いんですか?
http://ccs.cla.kobe-u.ac.jp/Jouhou/96/miyake/sotsuron/1syou.htm

携帯も専用のメールサーバがあると思います。
http://www.graffiti.jp/pc/p031201s.htm

>言わば匿メールのようなものです。
匿メールは送信先のメールアドレスが間違ってたら消えちゃうの?
戻ってくるなら、表示していないというだけで送信元のメールサーバの
情報を持っているのでは?

>> 実際にもうメール送信するものは作りました。
>どのようなコードで実装したのでしょうか?
たぶん、刈谷勇さん紹介の System.Web.Mail を使ったサンプルコードです。
投稿者 ?-?  (その他) 投稿日時 2009/9/4 04:52:48
今までの話から推測すると、フォームに、送信先メールアドレスと、件名と、メール本文を書く部分があって、それらを書いた後に、送信ボタンを押すとメール送信がされるというのをやりたいのだろうなあということなのかなと思います。
もちろん、送信するときに使うSMTPサーバなんかは指定しないことにして、誰でも簡単にメール送信が出来るように、と。

まあ、気持ちはわからないでもないんですが、少々落ち着いて、メールってどうやって送られているか考えて(あるいは調べて)欲しいのですが、基本的には、SMTPという方式でサーバ間あるいはクライアント(PC)とサーバ間でメールは送信されています。
乱暴に言うと、SMTPサーバには、ドメインを解釈して、SMTP送信先のメールサーバを決定したり、自分のメールボックスに送ったりというのをやっています。
そのSMTPでのやりとりの最初を最初にやってくれるのが、PHPの場合はmb_send_mailなんですが、これは、PHPの設定の中にあるsendmail_pathなど、メール設定にあわせたサーバに最初にメールを送っています。

あきらさんが
> でもそれは自分が使用しているSMTPサーバーを指定しなければなりません。
と書いている部分は、管理者が変わりにPHPの設定を指定している(多分自分のマシンのメール機能を指定しているはず)から意識しないで出来ていたことで、それを考えると本来、PHPだろうとなんだろうと最初に接続をするSMTPサーバを指定しなければなりません。

もし、mb_send_mailのように、SMTPサーバを意識しないで出来るようにしたいなら、DNSやSMTPの知識などを総動員して、自らSMTPサーバになるようなものをプログラムに入れて、それを呼び出すようにしなければなりません。(どちらにしても、現状日本では、ISPのSMTPサーバ経由でメールを送信しなければならないことになると思いますが。)

他の方法だと・・・WindowsXPやVistaなら、IISというのをインストールできるはずです。
それには、SMTPサーバの機能がありますので、それを経由することでメール送信等は出来ると思いますが、これも、上位SMTPサーバの指定などをしてISPのSMTPサーバを指定する必要があると思いますので、あまり現実的ではないと思います。

それと、SPAMがどうのと私は書きましたが、これの意味するところは、「Outbound Port 25 Blocking」などの用語を検索して読んでいただければ理解してもらえると思います。