
お世話になっています。
perl(Linuxでもあるのでしょうか?)で扱えるsendmail関数は、
宛先さえ指定すればメールを送信出来ます。
その機能を実装したいのですが、可能でしょうか。
つまり、SMTPサーバーを指定せずに送信機能が使いたいのです。
理由は、ソフトウェアでアンケートソフトを作りたいのですが、
例えばGmail等のサーバーを借りて、そのアカウントのSMTPを指定したソフトを配布した場合、
どえらいことになってしまうのではないか!?と思っていますし、実際そうなると思うので……
ご存知のかたがいらっしゃいましたら、実装が可能か、またどのような言葉で調べればいいかなどご教授ください。
よろしくお願いいたします。
なお、開発環境はWindowsです(7 home 64bit)
※蛇足ですが、実はC言語で実装ではなくActiveBasicというBASIC言語で開発しようとしています。
ですが、VBの用にマクロが充実しておらず、おそらくActiveBasicと言ってもご存じの方が少ないと思いC言語のフォームで質問させていただいております。
もちろんC言語でのご回答で大丈夫ですので、お願いします。
No.3ベストアンサー
- 回答日時:
まずは、「メールでないといけないのか」をよく考えましょう。
> 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が指定してある」状態なのです。
No.2
- 回答日時:
>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);
です。この関数を使うと、デフォルトのメーラーソフトが開きます。ただし、本文などは指定できません。宛て先のメルアドのみが指定できます。
御回答有り難うございます。
デフォルトのSMTPサーバーなるものがあるとは、しりませんでした。
もっと勉強しないと……
関数はwinsock系にやはりなってくるようですね。
本文は「mail@xxx.jp?subject=test&body=text」のようにするとできると思います。
ですが、今回は趣旨が違うのでなんとも……
デフォルトの取得が難関そうですね
No.1
- 回答日時:
perlのsendmail関数って、これのことですか?
http://search.cpan.org/~mivkovic/Mail-Sendmail-0 …
それとも、UNIX系OSのsendmailコマンドを利用したもののことでしょうか?
どちらにしろ、外部にメールを送信しようとしたら、SMTPサーバーを経由します。
「メール」はやめて、http,https、あるいは独自プロトコルでの通信にしたらどうでしょうか。
この回答への補足
sendmailはperlのものです。
UNIXは扱ったことがないのですが、レンタルサーバーで動くperlはどういう扱いになるのでしょう?
おそらく貼っていただいたもので合っていると思います。
御回答有り難うございます。
正直言いますと、素人に毛が生えた程度のプログラミング技術しか持ちあわせておりませんゆえ、
ネットワーク系の技術を勉強中なのです。(現在の最終目標はTwitterクライアント)
httpということは、perlか何かで送信部分を書いておいて、クライアントからそれにメッセージを送り、perlやPHPに送信部分を任せるということでしょうか?
独自プロトコルはおそらく出来ません。
通信技術の基礎は頭にあっても、実装するやり方が分かっていませんので……
(winsock2なども同時に勉強中)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DLLファイルの逆コンパイラにつ...
-
プログラマー達は何故、プログ...
-
C言語 関数、変数の宣言について
-
c言語
-
プログラミングc++を全く分か...
-
C言語について(初心者)
-
C# で 数式文字列処理を処理す...
-
visual studio 2022でのC#プロ...
-
DNCL(共テ用プログラミング言語...
-
プログラマーです。このDB設計...
-
ペーパーマリオみたいにドット...
-
C言語の関数のextern宣言
-
PIC12F1822でLED調光器を作りたい
-
最初に聞かれたこと
-
あってる
-
DNCL(共テ用プログラミング言語...
-
C言語のことです。写真(見にく...
-
Cのプログラムからアクセスでき...
-
プログラミング言語でアプリや...
-
c++の勉強方法を教えてくださ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでoutlook365が起動しません。
-
BASP21使用のメール送信でコマ...
-
VBAでsmtp認証をするには?
-
フォームの<input type="image"...
-
LotusScript メール作成方法が...
-
VBScriptで、メールの送信をし...
-
Exchangeを使用したメール送信...
-
Enterキーを押しても送信しない...
-
【C言語】メールを送信するプロ...
-
Clipmail3.0 確認画面の非表示...
-
プロキシ経由でjavamailを使っ...
-
javamailでメール送信ができません
-
例外処理のフローチャートの記...
-
「デバイスは PRN を初期化でき...
-
エクセルVBAでシートモジュール...
-
Excel VBAで、ユーザーフォーム...
-
Excel VBAで、ユーザーフォー...
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
Excel VBA 定義されたプロージ...
おすすめ情報