- ベストアンサー
C言語でのメール送信
C言語でメール送信するプログラムを作りたいのですが、良く分かりません。ある条件を満たしたら設定しておいたメールアドレス先にメールを自動送信するようなプログラムを作ろうと思っています。どなたかご教授お願いいたします。(プログラム初心者) OSはLinuxです。 (例) if (i == 100) { メール送信*********** }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Linux なら (というかUNIX系OSなら) sendmail コマンドを popen() で開いてヘッダと内容を書き込んで pclose() するだけでできます。(つまり、メールの送信は sendmail コマンドに任せるということです)。但し sendmail がデーモンとして動いている必要はあります。 例 FILE *fp; if ((fp = popen("/usr/lib/sendmail -t", "w")) == NULL) exit(1); fputs("From: xxxx@xxxx.com\n", fp); fputs("To: yyyy@yyyy.jp\n", fp); putc('\n', fp); fputs("Test\n", fp); fputs("Hello\n", fp); pclose(fp); 実はこれはシェルスクリプトで書いた方がすっきり見易くなります。 シェルスクリプトだとこんな感じです。 #!/bin/sh /usr/lib/sendmail -t <<EOL From: xxxx@xxxx.com To: yyyy@yyyy.jp Test Hello EOL ということで、まずは自分のアドレスに対してシェルスクリプトでメールを送ってみて届くか確認してみたらどうでしょうか。
その他の回答 (1)
- uyama33
- ベストアンサー率30% (137/450)
私もこの教えてグーで 指導していただきながらメーラー を作りました。 メーラー本 ソケットの本 サンプルコード を見ながら、ウインドウズ上で動くものを 作りました。 サンプルコードは、blatJ で検索すると見つかります。 リナックスでの メーラーの本と ソケットの本は 良く分かりません。 日本語の扱いが 面倒でした。 サンプルコードを見ながら 頑張ってください。 blatJ では、カタカナの全角の ファイル名を持つ ファイルを添付しようとすると 上手く動きません。 ソースコードの修正が必要です。 けっこう時間がかかりますが あきらめないで頑張ってください。
お礼
アドバイスありがとうございます。なかなかむずかしそうですね… がんばってみます!
お礼
ありがとうございます。これで1回やってみようとおもいます。ありがとうございました!!