1

ある時点で電子メール通知を送信する必要があるシステムを設計しています。だから私はこれを行う簡単な方法を探しています。いくつかの背景: システムは Linux プラットフォームで実行され、ネットワーク上のどこかに動作中の SMTP サーバーがあり、オペレーターはそのアドレス、必要に応じてサーバーの資格情報、およびターゲットの電子メール アドレスのリストを構成します (いいえ、私は取り組んでいません)。大量の電子メール システム ;-)。電子メールを送信する必要があるプロセスはおそらく C で記述されますが、優れたパフォーマンスは実際には要件ではありません。送信するメールは多くないため、コマンドライン ツールを呼び出すことは許容されるオプションです。基本的に、私が過去に同様のタスクで試したこと:

  • コマンド行モードでローカル sendmail を呼び出す。暗号化された sendmail 構成をサポートする必要があるため、これは悪夢です。これは私が本当に避けたいことです。
  • SMTP サーバー ポートと直接通信します (EHLO など)。これはオプションですが、2008 年には少しレベルが低すぎます ;-)。
  • メールリレーとして機能するローカルの sendmail デーモンと通信する MUA を使用します。ローカルの sendmail を起動して構成する必要があるため、これは正確には適切ではありません。

したがって、基本的に必要なのは、C 言語用のライブラリ、またはリモートの sendmail と通信できる (つまり、SMTP サーバーと通信する) ことができる単純なコマンドライン MUA ですが、ローカルのメールリレーは必要ありません

どんなアイデアでも大歓迎です!

4

5 に答える 5

4

mail(1) または mailx(1)
また、ローカル MTA があるので、メッセージを sendmail(8) に直接パイプすることもできます (これは、その名前にもかかわらず、メールを注入するために多くの MTA で使用されるやや標準的なインターフェースです)。

于 2008-12-04T20:15:15.013 に答える
1

これは素敵な SMTP ライブラリlibESMTP です。

于 2008-12-04T20:18:20.653 に答える
0

申し訳ありませんが、あなたが求めていることは不可能です。メールを別のシステムに送信するには、あるコンピュータから別のコンピュータにメールを転送する何らかのプログラムが必要です。このようなプログラムは、定義上、MTA です。

Sendmail を使用する必要はありません。他のポスターが伝えようとしているように、もっと軽量なものを使用できます。必要なのは、SMTP クライアントとして機能できるものだけです。機能をプログラムに組み込むこともできますが、基本的に MTA と同じものになってしまいます。

于 2008-12-05T02:26:54.920 に答える
0

Perl のMail::Mailerは、ローカル MTA を介してメールを生成する非常に簡単な方法を提供します (perldoc -q mail の例):

use Mail::Mailer;

my $mailer = Mail::Mailer->new();
$mailer->open({
    From    => $from_address,
    To      => $to_address,
    Subject => $subject,
}) or die "Can’t open: $!\n";
print $mailer $body;
$mailer->close();

C を使用している場合は、Mail::Mailer を使用して何かの周りにスクリプト ラッパーを記述するか、シェル経由で MTA を直接呼び出してフォーマットされたメッセージを書き込むことができます。

于 2008-12-04T21:10:51.890 に答える