![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
お世話になっています。
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- サーバー 接続・ログインはできているのにメールが送信できない 2 2022/06/27 15:03
- ダイヤルアップ Raspberry Piでアナログモデム経由で音声再生 1 2022/05/20 18:01
- ドメイン・サーバー・クラウドサービス Google Workspaceでの独自ドメインのメール送信について 2 2022/05/31 19:48
- その他(セキュリティ) 役所など、情報系システムのセキュリティが弱くても業務システムに問題ないか 3 2022/11/02 16:38
- その他(ソフトウェア) PC上のOutlookでIMAPアクセス時の送信が出来ない。Android上では問題なし。 2 2022/09/28 11:22
- 予備校・塾・家庭教師 フリーランスで英語指導をされている方、お詳しい方などにお聞きしたいです。 自室にて知人の中高生の子供 2 2022/06/22 09:37
- インターネット広告・アフィリエイト アフェリエイトサイト 作成について 5 2022/05/13 21:31
- その他(メールソフト・メールサービス) メールサーバーは「PC側がメールをDL済みか否か?」を何を以て感知するのか? 2 2022/12/20 14:56
- 大学受験 関西外国語大学の国際共生学科、英米語学科(Super IESプログラム)、大阪外語専門学校、同志社大 1 2023/03/29 22:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでsmtp認証をするには?
-
CGI(Perl)からメールを送信する...
-
CDO.Messageを使ったVBScript
-
添付ファイルをつけてメールを送る
-
グラフのX,Y座標を取得したい
-
ユーザー定義関数に#NAME?が返...
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
「デバイスは PRN を初期化でき...
-
文章の分割
-
VBでグローバル変数を宣言するには
-
Excel VBA 『Call』で呼び出す...
-
Perlソースコードをコンパイル...
-
エクセルVBAでシートモジュール...
-
Form間の値の渡し方
-
モジュールとは何ですか
-
[ASP]条件によってインクルード...
-
「Perl Command Line InterPret...
-
'Range'メソッドは失敗しました
-
ppmのリポジトリの場所
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでoutlook365が起動しません。
-
c#で 簡単なメール(添付ファ...
-
Perl メールフォーム複数のアド...
-
CDO.Messageを使ったVBScript
-
送信先のメールアドレスが存在...
-
【C言語】メールを送信するプロ...
-
Enterキーを押しても送信しない...
-
プロキシ経由でjavamailを使っ...
-
VBScriptで、メールの送信をし...
-
perl 自動返信メールプログラム...
-
C#のメール送信時のエラーについて
-
空メールシステムについて
-
フォーム経由で送られるURLつき...
-
フォームメール、時刻を設定し...
-
Net::SMTPでメールを送信したい...
-
C言語のプログラム内でトリガを...
-
VBAでsmtp認証をするには?
-
sendmailでメール送信
-
Exchangeを使用したメール送信...
-
リンクをクリックするだけでC...
おすすめ情報