- PR -

コマンドラインからSMTP認証のメール送信

投稿者投稿内容
HQ
会議室デビュー日: 2005/06/26
投稿数: 6
投稿日時: 2005-06-26 19:39
RedHat Linux9 を使用しています。

社内のメールサーバがSMTP認証を使用しているのですが、
mailやsendmail などのコマンドラインからのメール送信で
SMTP認証を必要とするメールサーバーを使用したメールの
送信はできるでしょうか。
このマシンのsendmailサーバにSMTP認証を導入すれば何とかなるものでしょうか。
あるいはSMTP認証に対応したメーラーのインストールが必要でしょうか。

よろしくお願いします。
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2005-06-26 23:47
状況がわからんですが...

SMTP認証を使用するMTAがあって、発信元がどこであれ必ずSMTP認証を
経ないとリレーを拒否するように設定されており、その設定を変更する
ことは出来ない、ということですか?
そうだとして...

mailコマンドを使うのはどこなんでしょ?
そのMTA上であれば、mailコマンドであれ、sendmailをコマンドラインから
起動した場合であれ、SMTP認証は関係無いですが...
HQ
会議室デビュー日: 2005/06/26
投稿数: 6
投稿日時: 2005-06-27 00:21
ぽんすさん返信ありがとうございます。

わかりにくくてすみません。
メールサーバ(MTA)のSMTP認証についてはご認識のとおりです。
mailコマンドを使用したいのは、メールサーバとは別のマシンで、
このマシンがRedHat9です。

このmailコマンドを実行するRH9でもsendmailが動作しており、
このマシンのユーザ間ではメールの送受信はできました。
しかしマシン外のメールアドレスへは送信ができていません。

sendmailのSMART_HOSTにメールサーバを指定したところ、
メールサーバへは中継に行ってくれているようですが、
下のようなエラーのメールが帰ってきています。
=====================================
----- Transcript of session follows -----
... while talking to [メールサーバー]:
>>> RCPT To:<送信先@ドメイン>
<<< 550 5.7.1 <送信先@ドメイン>... Relaying denied. Proper authentication required.
550 5.1.1 送信先@ドメイン... User unknown
=====================================
で、どうやらSMTP認証ができていないのではないかと思った次第です。





tkoba
会議室デビュー日: 2005/06/26
投稿数: 3
投稿日時: 2005-06-27 00:57
mail は古いコマンドなので SMTP AUTH は非対応の気がします。
# 独自拡張されていれば別でしょうが。

コマンドラインから使いたいというのが、送信を自動化したいというだけの
ことならば、Perl とか Ruby のモジュール(ライブラリ)を利用して SMTP
AUTH 対応の MUA を作ることができると思います。

Ruby だと net/smtp.rb というライブラリに

# === SMTP Authentication
#
# The Net::SMTP class supports three authentication schemes;
# PLAIN, LOGIN and CRAM MD5. (SMTP Authentication: [RFC2554])
# To use SMTP authentication, pass extra arguments to
# SMTP.start/SMTP#start.
#
# # PLAIN
# Net::SMTP.start('your.smtp.server', 25, 'mail.from.domain',
# 'Your Account', 'Your Password', :Plain)
# # LOGIN
# Net::SMTP.start('your.smtp.server', 25, 'mail.from.domain',
# 'Your Account', 'Your Password', :login)
#
# # CRAM MD5
# Net::SMTP.start('your.smtp.server', 25, 'mail.from.domain',
# 'Your Account', 'Your Password', :cram_md5)
#

の記述があるので、この3種類の認証方法を利用できます。

Perl は調べていませんが、CPAN あたりに転がっていそうです。


[ メッセージ編集済み 編集者: tkoba 編集日時 2005-06-27 00:57 ]
ぽんす
ぬし
会議室デビュー日: 2003/05/21
投稿数: 1023
投稿日時: 2005-06-27 07:43
にゃるほど。mailはキューを突っ込むだけで送信するのはsendmailの
仕事ですから、この場合SMTP認証を行う必要があるのはsendmailですね。

sendmailからそのMTAに投げる際に、なにか決まったアカウントと
パスワードを使ってSMTP認証をするように設定する、と。
出来そうな気はしますが、私はやり方を知りません。

SMTP認証対応のMUAを使う、という手でもいいのならそのほうが
てっとりばやいでしょうね。

あとはSMTPクライアントを書いてしまう手か。
ネットワークプログラミングの経験があれば、「とりあえず動く」
というレベルで必要最小限の機能に絞ったものを書くことは
それほど難しくないですが、この手を使うのは上のふたつの手では
どうしてもダメだった場合だけでいいんじゃないでしょーか。
HQ
会議室デビュー日: 2005/06/26
投稿数: 6
投稿日時: 2005-06-27 10:08
tkobaさん 返信ありがとうございます。

お考えのように、コマンドラインから使用したいのは処理の自動化のためです。
サーバの運用情報を定期的に送信したいと考えています。(したがって受信不要)

Rubyによる自作は現在ちょっと私には敷居が高いですが、
検討させていただきます。
情報ありがとうございました。
HQ
会議室デビュー日: 2005/06/26
投稿数: 6
投稿日時: 2005-06-27 10:22
ぽんすさん 返信ありがとうございます。

>sendmailからそのMTAに投げる際に、なにか決まったアカウントと
>パスワードを使ってSMTP認証をするように設定する、と。

はい、これができればベストなのですが。
どうも方法が見つけられていません。

次のコマンドラインから送信できるMUAの導入、
もしくはtkobaさんにも教えていただいた自作、
はできれば避けたいと考えています。

情報ありがとうございました。

「なんでOutLookで簡単にできるのにLinuxではできないの?」と
笑われてしまいました。
悲しい。
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2005-06-27 11:44
こんにちは。

ええと、私は試したことがないのですが、

引用:

ぽんすさんの書き込み (2005-06-27 07:43) より:
sendmailからそのMTAに投げる際に、なにか決まったアカウントと
パスワードを使ってSMTP認証をするように設定する、と。


は、できたと思います。
「sendmail authinfo」 をキーワードに、検索エンジンで探してみてください。

ただ、SASL に対応させなければならないので、sendmail の再コンパイルが必要になるかもしれません。
_________________
はゆる
Smile, Smiles make me happy.

スキルアップ/キャリアアップ(JOB@IT)