プロが教える店舗&オフィスのセキュリティ対策術

お世話になっています。

perl(Linuxでもあるのでしょうか?)で扱えるsendmail関数は、
宛先さえ指定すればメールを送信出来ます。
その機能を実装したいのですが、可能でしょうか。

つまり、SMTPサーバーを指定せずに送信機能が使いたいのです。

理由は、ソフトウェアでアンケートソフトを作りたいのですが、
例えばGmail等のサーバーを借りて、そのアカウントのSMTPを指定したソフトを配布した場合、
どえらいことになってしまうのではないか!?と思っていますし、実際そうなると思うので……

ご存知のかたがいらっしゃいましたら、実装が可能か、またどのような言葉で調べればいいかなどご教授ください。
よろしくお願いいたします。

なお、開発環境はWindowsです(7 home 64bit)

※蛇足ですが、実はC言語で実装ではなくActiveBasicというBASIC言語で開発しようとしています。
ですが、VBの用にマクロが充実しておらず、おそらくActiveBasicと言ってもご存じの方が少ないと思いC言語のフォームで質問させていただいております。
もちろんC言語でのご回答で大丈夫ですので、お願いします。

A 回答 (3件)

perlのsendmail関数って、これのことですか?


http://search.cpan.org/~mivkovic/Mail-Sendmail-0 …
それとも、UNIX系OSのsendmailコマンドを利用したもののことでしょうか?

どちらにしろ、外部にメールを送信しようとしたら、SMTPサーバーを経由します。

「メール」はやめて、http,https、あるいは独自プロトコルでの通信にしたらどうでしょうか。

この回答への補足

sendmailはperlのものです。
UNIXは扱ったことがないのですが、レンタルサーバーで動くperlはどういう扱いになるのでしょう?
おそらく貼っていただいたもので合っていると思います。

補足日時:2013/06/06 15:35
    • good
    • 0
この回答へのお礼

御回答有り難うございます。

正直言いますと、素人に毛が生えた程度のプログラミング技術しか持ちあわせておりませんゆえ、
ネットワーク系の技術を勉強中なのです。(現在の最終目標はTwitterクライアント)

httpということは、perlか何かで送信部分を書いておいて、クライアントからそれにメッセージを送り、perlやPHPに送信部分を任せるということでしょうか?

独自プロトコルはおそらく出来ません。
通信技術の基礎は頭にあっても、実装するやり方が分かっていませんので……
(winsock2なども同時に勉強中)

お礼日時:2013/06/06 15:34

>perl(Linuxでもあるのでしょうか?)で扱えるsendmail関数は、


>宛先さえ指定すればメールを送信出来ます。

「デフォルトのSMTPを使う」ってだけで、SMTPサーバーを利用しているのは変わりません。

>その機能を実装したいのですが、可能でしょうか。

Windowsでメールを送受信するソフトを作成する場合は、以下の関数を使います。
http://www.golgo.jp/winsock.html

これらの関数で「SMTPサーバーを指定する際に、現在のユーザーのデフォルトのメールソフトを調べて、そのメールソフトのデフォルトアカウントを調べて、そのアカウントがどこのSMTPサーバーを使う設定になっているか調べれば「SMTPサーバーをユーザーが指定する事無しにメール送信が可能」になります。

手っ取り早いのはShellAPI関数を用いた

ShellExecute(NULL, "open", "mail:xxx@xxxxxx.xx.jp", NULL,NULL, SW_SHOWNORMAL);

です。この関数を使うと、デフォルトのメーラーソフトが開きます。ただし、本文などは指定できません。宛て先のメルアドのみが指定できます。
    • good
    • 0
この回答へのお礼

御回答有り難うございます。

デフォルトのSMTPサーバーなるものがあるとは、しりませんでした。
もっと勉強しないと……

関数はwinsock系にやはりなってくるようですね。
本文は「mail@xxx.jp?subject=test&body=text」のようにするとできると思います。
ですが、今回は趣旨が違うのでなんとも……

デフォルトの取得が難関そうですね

お礼日時:2013/06/07 13:49

まずは、「メールでないといけないのか」をよく考えましょう。



> httpということは、perlか何かで送信部分を書いておいて、クライアントからそれにメッセージを送り、perlやPHPに送信部分を任せるということでしょうか?

送信ではなく受信側です。
あなたが作っているアプリに、ブラウザの代りにフォームに送信する機能を持たせます。
受信側では、HTMLを出力する必要はありません。OK/NGの反応くらいはあった方がいいと思いますが。

どのPCからでも特定のURLへアクセスするので、今問題にしているようなことは起こりません。


> sendmailはperlのものです。

Perl本体にsendmailはありません。
先に書いたような追加モジュールを使うか、UNIXやLinux等のOSにインストールされたsendmailコマンドを使うか、です。

細かい点は省くと。
UNIXやLinux等のOSでは、一つのマシンを複数のユーザーで同時に使うことを想定しています。
Windowsと違って、メールはOS標準の機能です。
そのため、通常はマシンの標準の設定を使って送受信するようになっています。
sendmailは、「SMTPを指定しない」のではなく、「既にSMTPが指定してある」状態なのです。
    • good
    • 1
この回答へのお礼

なるほど!理解出来ました!!
ありがとうございました!

お礼日時:2013/12/11 11:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!