トップページunix
1001コメント299KB

sendmail その2

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。NGNG
m4でもWIDE CFでもsendmail.cf直書きでも
sendmailについて語りましょう

前スレ
http://pc.2ch.net/test/read.cgi/unix/979274978/l50

0853名無しさん@お腹いっぱい。NGNG
spammer逝ってヨシ ( ゚д゚)、ペッ
0854名無しさん@お腹いっぱい。NGNG
>>852
smtpfeed が活躍するのは1通のメールに宛て先がたくさんあるとき。
宛て先が1つのメールがたくさんある、みたいな場合には
あんまり役に立たない。はず。たしか。
0855名無しさん@お腹いっぱい。NGNG
qmail と Postfix ではできるようなのですが、
user というアカウントが存在する環境で、userhoge@example.com に送っても
user@example.com に届く設定は Sendmail でできるでしょうか。
virtusertable には正規表現は使えないようで
user*.?@example.com user
と書いて送っても、User unknown で帰ってきました。
どう設定すればこの動作ができるでしょうか。
0856名無しさん@お腹いっぱい。NGNG
>>855
/etc/mail/aliases を使うのはダメ?
0857名無しさん@お腹いっぱい。NGNG
ちゃんと伝わるか不安ですがお願いします。

aaa.com 111.111.111.111
のサーバにバーチャルドメインで
bbb.net 222.222.222.222
も動かしてます。

mail@bbb.netでメール送信したり、
bbb.netのサイト上のフォームメールなんかでcgiからメール送信すると、
メールのヘッダReceivedにaaa.comと表示されてしまいます。

bbb.netからの送信はヘッダにもbbb.netを
aaa.comからは、aaa.comを表示させるにはどうすれば良いでしょうか?

sendmailのバージョンは8.12.9
smtpfeedも使ってます。

技術も知識も無いので、バージョンアップやqmail乗り換えなどは避けたいです。
現在のsendmail.cfは解らないなりに調べて、直接編集しましたので、
m4やCFで今のsendamil.cfの作り方は解りません。
直接編集で教えて頂けたら幸いです。
0858名無しさん@お腹いっぱい。NGNG
>>857
bbb.net からの送信か aaa.com からの送信かは
どうやって区別するの?
0859名無しさん@お腹いっぱい。NGNG
っていうことじゃないか。

>>857
> も動かしてます。
これは「ウェブサーバを動かしてる」って意味?

> メールのヘッダReceivedにaaa.comと表示されてしまいます。
これはメールを受け取ったマシンが
接続元 IP アドレスを逆引きして書いてるんじゃない?
だったら Sendmail の設定でどうこうできるもんじゃないと思うよ。
バーチャルホストをやめて別マシンにするくらいしかないんじゃないかな。
どうしても1台でやりたいなら VMware か何か使う、とか。
0860名無しさん@お腹いっぱい。NGNG
Fromアドレスの@以下で区別出来ませんか?

Fromが@bbb.netのアドレスなら、ヘッダにbbb.net
それ意外のアドレスならaaa.comと言うように・・・
0861名無しさん@お腹いっぱい。NGNG
>>860
いや、だから、そのマシンの Sendmail がつけてるんじゃなくて
そのマシンからメールを受け取ったマシンがつけてるんじゃないか、
と言ってるのだが。
0862名無しさん@お腹いっぱい。NGNG
>>859

>> メールのヘッダReceivedにaaa.comと表示されてしまいます。
>これはメールを受け取ったマシンが
>接続元 IP アドレスを逆引きして書いてるんじゃない?
>だったら Sendmail の設定でどうこうできるもんじゃないと思うよ。

逆引きしてたのですか。。。
だったら仕方がないですね。
有り難うございました。
0863855NGNG
>>856
説明が足りませんでした。
実在するアカウント名 user の後に続く hoge がなんであれ
user に届く設定にしたいのです。
0864名無しさん@お腹いっぱい。NGNG
>>863
デフォルトだと user+hoge が user に送られると思うけど、それではダメ?

>>860
> Fromアドレスの@以下で区別出来ませんか?
試してないけど、できなくはないかも。 sendmail.cf の 'H' で始まる行を見てみ。
0865860NGNG
>>860
Format of headersのトコですよね。
文法を調べたんですが、全く解りませんでした。

@bbb.netで送信した時には、aaa.comを知られたく無いので、
新しくccc.jpを取得して、サーバのドメインをccc.jpにして、
Receivedの>>861さんが言う部分にはccc.jpを表示させ、
こちら側のsendmailが付けるReceivedを、それぞれ振り分ける様にしたいです。

どなたかお暇があれば、sendmail.cfにどのように書けば良いか教えて下さい。
0866860NGNG
間違えた

>>860>>864
0867855NGNG
>>864
`+'をつけてできました。こんな機能があるとは知りませんでした。
ありがとうございました。
0868名無しさん@お腹いっぱい。NGNG
>>854
>smtpfeed が活躍するのは1通のメールに宛て先がたくさんあるとき。
>宛て先が1つのメールがたくさんある、みたいな場合には
>あんまり役に立たない。はず。たしか。

qmailもsmtpfeedと同じ感じでしょうか?
ちなみにキューにたまったメールを再送信するときにはsmtpfeedは活躍するのでしょうか?
0869名無しさん@お腹いっぱい。NGNG
As I found out recently, to my surprise, Sendmail 8.1x allows injection of
mail from any client on the MSA port (587) unless configured to do
authentication (SMTP AUTH).

これって本当?使ってないんでよくわからんのだけど。
0870名無しさん@お腹いっぱい。NGNG
とりあえず、SMTP-AUTH使ってりゃ大丈夫だろ。
0871名無しさん@お腹いっぱい。NGNG
デフォルトで使ってないから問題視されてるんでなくて?
0872名無しさん@お腹いっぱい。NGNG
じゃあ、使えばいいじゃん。
どうせ必要な機能なんだし
0873名無しさん@お腹いっぱい。NGNG
つまり、歴史は繰り返されているということですか。。。
0874名無しさん@お腹いっぱい。NGNG
キャッチオールの設定ってどうやんすか?
0875名無しさん@お腹いっぱい。NGNG
8.13リリース記念おめでとう。
もう、ver.9がでるのも時間の問題かな。
0876名無しさん@お腹いっぱい。NGNG
中国や韓国からspammerが存在しないアドレスにたいして一気にメールを
投げてくるんですけれど、こういう接続へのうまい対処って無いんですかね?
spamassasinは一応使っているんだけれど会社用だから難しい。
0877名無しさん@お腹いっぱい。NGNG
sendmailでlistenポートを変更するのはどうしたらいいん?
0878名無しさん@お腹いっぱい。NGNG
>>877
O DaemonPortOptions
0879名無しさん@お腹いっぱい。NGNG
cf/README読めば書いてあるよ。
0880名無しさん@お腹いっぱい。NGNG
Example 1: To change the port for the SMTP listener, while still using the MSA default, use
DAEMON_OPTIONS(`Port=925, Name=MTA')

Example 2: To change the port for the MSA daemon, while still using the default SMTP port, use
FEATURE(`no_default_msa')
DAEMON_OPTIONS(`Name=MTA')
DAEMON_OPTIONS(`Port=987, Name=MSA, M=E')
0881名無しさん@お腹いっぱい。NGNG
書いてあったっけ?

とりあえず、みんなサンクス
0882名無しさん@お腹いっぱい。NGNG
sendmailって
・相手がESMTPしゃべれると思ったらESMTPでお話しする
・まずはESMTPでしゃべってダメならSMTPでお話しする
と思うのですが、「何がなんでもESMTPは使用しない」という
設定は可能ですか?(送信側MTAで)
0883名無しさん@お腹いっぱい。NGNG
>>882
可能。 cf/README の confSMTP_MAILER 見れ。
デフォルトは "esmtp" になってるので "smtp" をセットすればよろし。
0884882NGNG
>>883 サンクス

当方、いまだにCF使いのため
悪戦苦闘いたします!
0885884NGNG
・・・ダメでした・・・

divert(-1)
divert(0)dnl
VERSIONID(`$Id: generic-solaris2.mc,v 8.11 1999/02/07 07:26:03 gshapiro Exp $')
OSTYPE(solaris8)dnl
DOMAIN(generic)dnl
MAILER(local)dnl
MAILER(smtp)dnl
define(`confSMTP_MAILER', `smtp')dnl
define(`SMART_HOST', `smtp:[192.168.1.1]')dnl

こんなmcファイルを作ってみたのですが、、、

# /usr/lib/sendmail -v myname0@host.domain < /tmp/aaa
myname0@host.domain... Connecting to [192.168.1.1] via smtp...
220 upper-host.domain ESMTP Sendmail 8.11.6p2 .....
>>> EHLO myhost.domain <= こんなのや
250-upper-host.domain Hello myhost.domain [192.168.1.1], pleased to meet you
・・・・snip・・・・
>>> MAIL From:<myname1@myhost.domain> SIZE=5 <= こんなんが、、、

0886名無しさん@お腹いっぱい。NGNG
Add new F=2 mailer flag to disable use of ESMTP, using SMTP instead.
ということなので
define(`SMTP_MAILER_FLAGS', `2')
でどうか
0887884,885NGNG
>>886

情報ありがとうございます。
しかし、、結果は 885と同様でした。。。
EHLO しゃべってるし、MAIL From: にSIZEがあるし。

sendmailのソースをいじらないとダメなのかな。。。
(自分には無理ですが)

0888名無しさん@お腹いっぱい。NGNG
>>887
Sendmail のバージョン何?
0889名無しさん@お腹いっぱい。NGNG
>>887
MAILERマクロよりも前にdefineが無いと駄目と思う。
sendmail.cfの Msmtp や Mesmtp 行確認してみれ。
0890887NGNG
>>888
8.11.6 + patch(2ヶ)です

>>889

一応、MALERの前に書いてるのですが、どうもうまくいきません。。。


divert(0)dnl
VERSIONID(`$Id: generic-solaris2.mc,v 8.11 1999/02/07 07:26:03 gshapiro Exp $')
OSTYPE(solaris8)dnl
DOMAIN(generic)dnl
define(`SMTP_MAILER_FLAGS', `2')
MAILER(local)dnl
MAILER(smtp)dnl
define(`confSMTP_MAILER', `smtp')dnl
define(`SMART_HOST', `smtp:[192.168.1.1]')dnl

Msmtp近辺 (Msmtp8、Mdsmtpは割愛)

Msmtp, P=[IPC], F=mDFMuX2, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
T=DNS/RFC822/SMTP,
A=TCP $h
Mesmtp, P=[IPC], F=mDFMuXa2, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP, E=\r\n, L=990,
T=DNS/RFC822/SMTP,
A=TCP $h
Mrelay, P=[IPC], F=mDFMuXa82, S=EnvFromSMTP/HdrFromSMTP, R=MasqSMTP, E=\r\n, L=2040,
T=DNS/RFC822/SMTP,
A=TCP $h

0891名無しさん@お腹いっぱい。NGNG
>>890
>>886 のメーラフラグ (2) が登場したのは 8.12 あたりからだからダメだね。
0892名無しさん@お腹いっぱい。NGNG
aliasesでワイルドカードって使えますか?
Qmailの.qmail-tekitou-default
みたいな挙動にしたいのですが・・・
0893886NGNG
>>891
8.12.11 コンパイルして試したらOKでした。

Mlocal部が悪いのか、root以外のユーザ宛
メールが受け取れないという別の問題がでてますが
なんとかmcファイルと格闘してみます。

本当にありがとうございました

0894名無しさん@お腹いっぱい。NGNG
Solaris9上でsendmailをインストールしたのですが、
そのSolaris9のホストからメールするとDNSで名前解決できないのです。
resolv.confには記述しており、nslookupとか問題ありません。
また、どのバージョンのsendmailでも同現象が発生しており、そこで
利用しているsendmail.mcをLinux用に書き換えてFedoraで利用すると
成功します。どこが原因と考えられるでしょうか?
0895名無しさん@お腹いっぱい。NGNG
まずはMXレコードからはじめよう
0896名無しさん@お腹いっぱい。NGNG
>>894
/etc/nsswitch.conf の hosts 項目に dns を設定してる?
例: hosts: files dns
(注意:dns を files の前に出さないこと)
これを反映した名称解決は getent hosts ホスト名 で試せる。
0897名無しさん@お腹いっぱい。NGNG
>>896
sendmailはservice.switchちゃうの?
0898894NGNG
>>896
コメントありがとうございました。
しかし、nsswitch.confにdnsは設定されています。
どうも、メールリレーは問題ないのですが、メールサーバからmailコマンド
で送信できず、はまってます。
echo test | mail -v test@test.com
0899名無しさん@お腹いっぱい。NGNG
>>897
それはネームサービススイッチのない OS 用だと思うんけど。
説明は sendmail マニュアルの The Service Switch の項を参照。

>>898
うーん、状況がよく判らないなあ。
リゾルバに直接アクセスする dig/nslookup 以外のコマンド、
例示にあった getent は動作するんだよね?
0900名無しさん@お腹いっぱい。NGNG
redhatnetworkを利用しただけじゃ、8.12.8迄しか上がらないので、
RedHat9にsendmail_8.12.11をソースから入れようとしてるんですけど
コンパイルで失敗しちゃいます。
エラーメッセージとかいろいろググッったんですけど対策みつからなくて・・
どうしたらいいんでしょうか?
今、makeの読み方勉強してます。



0901名無しさん@お腹いっぱい。NGNG
>>900
とりあえずエラーメッセージここに貼ってみ。
0902名無しさん@お腹いっぱい。NGNG
と思ったが、 RedHat かよ。 Linux 板行ってきた方が良いかもね。
0903名無しさん@お腹いっぱい。NGNG

Making all in:
/home/download/sendmail-8.12.11/sendmail
Configuration: pfx=, os=Linux, rel=2.4.20-31.9, rbase=2, rroot=2.4.20-31, arch=i686, sfx=, variant=optimized
Making in /home/download/sendmail-8.12.11/obj.Linux.2.4.20-31.9.i686/sendmail
make[1]: 入ります ディレクトリ`/home/download/sendmail-8.12.11/obj.Linux.2.4.20-31.9.i686/sendmail'
cc -o sendmail -L/usr/local/lib/sasl -L/usr/local/lib -L/usr/lib main.o alias.o arpadate.o bf.o collect.o conf.o
control.o convtime.o daemon.o deliver.o domain.o envelope.o err.o headers.o macro.o map.o mci.o milter.o mime.o
parseaddr.o queue.o readcf.o recipient.o sasl.o savemail.o sfsasl.o shmticklib.o sm_resolve.o srvrsmtp.o stab.o stats.o
sysexits.o timers.o tls.o trace.o udb.o usersmtp.o util.o version.o
-lsasl /home/download/sendmail-8.12.11/obj.Linux.2.4.20-31.9.i686/libsmutil/libsmutil.a /home/download/sendmail-8.12.11/obj.Linux.2.4.20-31.9.i686/libsm/libsm.a -ldb -lresolv -lcrypt -lnsl -ldl

srvrsmtp.o(.text+0xe47): In function `smtp':
: undefined reference to `sasl_errdetail'
srvrsmtp.o(.text+0x40cd): In function `smtp':
: undefined reference to `sasl_errdetail'

collect2: ld はステータス1で終了しました
make[1]: *** [sendmail] エラー1
make[1]: 出ますディレクトリ`/home/download/sendmail-8.12.11/obj.Linux.2.4.20-31.9.i686/sendmail'

すみませんが、もしわかるようならお願いします。
GNU make 3.79.1
Gcc 3.2.2 を使いました。
やっぱり畑違いのようでしたら、LINUX板に行きます。
0904名無しさん@お腹いっぱい。NGNG
>>903
赤帽 9 は環境ないから判らんけど、ヘッダは Cyrus-SASL 2.x を参照し、
リンク時は Cyrus-SASL 1.x を参照しているんだろうな。
-lsasl じゃなくて -lsasl2 なら成功すると思う。
obj.Linux.2.4.20-31.9.i686/sendmail に Makefile あるから、
中の -lsasl を -lsasl2 に変えて ./Build してみそ。
0905名無しさん@お腹いっぱい。NGNG
.forwardファイルに何か細工をして日本語メール以外を削除するようにしたいんですけど
そういう設定方法とか、スクリプトについて記述してあるページをご存知ないでしょうか?

ちなみに、sendmail自体の設定は触れないです。あくまで.forwardだけ・・・
0906900NGNG
>>904
ありがとうございます。
その方法でコンパイル成功しました。
0907名無しさん@お腹いっぱい。NGNG
>>905
procmail とか maildrop とか slocal (MH) とか、そういうの使うんだろうな。
あとはぐぐれ。
0908名無しさん@お腹いっぱい。NGNG
>>905
procmail, junkfilter...
http://pc5.2ch.net/test/read.cgi/unix/1024074390/
0909名無しさん@お腹いっぱい。NGNG
sendmail(SMTP認証)+qpoppe(APOP)で入れて動かしてみたんですが、
rootだけがSMTP認証を通って送信できるのに、APOPの認証エラーでクライアントPCのメールソフトで受信できない状態です。
他のアカウントでは送受信共、うまくいってます。
エイリアスで他のアカウントに転送するしかないんでしょうか?
0910名無しさん@お腹いっぱい。NGNG
>>909
何が書いてあるのか咄嗟には判らなかったが、要するに qpopper の問題だな?
sendmail は関係ない。
両者の間に関係があるとしたらメールボックスのファイルだけだな。
管理をするならこれくらいは理解しておいてほしい。

で、本題だが、qpopper で APOP 利用時は UID=0 なユーザを拒絶する。
なので別の管理用メールアカウントに転送すること。
0911名無しさん@お腹いっぱい。NGNG
ちげーよ。キューポッペの問題だよ。
0912909NGNG
SMTPとQpopper別物だけどセットでメールサーバって認識だったもんで、
必要ないのに両方書いてしまいました・・。
なるほど、APOP時はUID=0のユーザは拒絶ですか。
レスTHXです。

0913名無しさん@お腹いっぱい。NGNG
LAN と WAN の共用メールサーバ(FreeBSD 4-stable 2004/7/1)
にしようとしています。

% hostname
foo.lan
なマシンの、/etc/mail/foo.lan.mc に、

MASQUERADE_AS(`sample.com')dnl
MASQUERADE_DOMAIN(`$j')dnl
FEATURE(`limited_masquerade')dnl
FEATURE(`masquerade_envelope')dnl
FEATURE(`allmasquerade')dnl

を追記していますが、生成される cf では、
H?M?Message-Id: <$t.$i@$j>
となっているので、Message-Id field の domain-part が、
常に foo.lan になってしまいます。

Q. domain-part を、
宛先: "LAN 内のみ" → `$j'
宛先: "LAN 外含み" → sample.com
という様な振舞いをさせることは、mc file で
どの様に記述すれば達成できるのでしょうか?
0914名無しさん@お腹いっぱい。NGNG
レンタルサーバ(VPS)上でsendmail 8.12.xを使っています。
aliaseのincludeを利用して、複数アドレスに対してメールを発信する
仕組みを作りたいと思うのですが、特定の人物だけがこのaliaseで指定した
アドレスに送信できる、というような設定は可能でしょうか?

キーワードだけでも教えていただけたら幸いです(自分で検索するなり、
必要なら書籍を購入します)。
0915名無しさん@お腹いっぱい。NGNG
sendmail.cfに独自のルールを追加すれば可能だが
fml等のメーリングリスト管理ソフトを利用するほうが楽。
0916914NGNG
とりあえず可能だということで、書籍を探してみます。レスサンクスです。>915
0917914NGNG
本買って調べてたら、ここにたどり着きました。さらに勉強するです。
http://www.sendmail.org/~ca/email/protected.html
0918名無しさん@お腹いっぱい。NGNG
SMART_HOSTを書いてやっても、メール転送するときに
まだMXレコードを引こうとするんですけど、
直接接続させることはできませんか?
0919名無しさん@お腹いっぱい。NGNG
>>918
[]使えや。
0920名無しさん@お腹いっぱい。NGNG
それが[]使ってもMX引くんですよ…
0921名無しさん@お腹いっぱい。NGNG
こんな感じに書いてもMX引くんですよ…
define(`SMART_HOST', `[123.456.78.90]')dnl
0922名無しさん@お腹いっぱい。NGNG
>>921
マジ? grep ^DS /etc/mail/sendmail.cf の結果は?
0923名無しさん@お腹いっぱい。NGNG
MXじゃなくてAじゃないの? あれは何やっても止まらなさげ。
0924921NGNG
ごめんなさ遅くなりました。
>>922
DS[123.456.78.90] ですね。

>>923
AAAA, A, MXの順に引いてマスタ。
0925名無しさん@お腹いっぱい。NGNG
sendmail難しいわ〜
0926名無しさん@お腹いっぱい。NGNG
>>917
よさげじゃん
0927名無しさん@お腹いっぱい。NGNG
>>900
どうしてもsendmailじゃなきゃいかんの?
0928名無しさん@お腹いっぱい。NGNG
他のpostfixとかのほうが楽じゃね?
0929名無しさん@お腹いっぱい。NGNG
と思うんだが・・
0930名無しさん@お腹いっぱい。NGNG
だよねー
0931名無しさん@お腹いっぱい。NGNG
それってー
0932名無しさん@お腹いっぱい。NGNG
どうなのー
0933名無しさん@お腹いっぱい。NGNG
TSつ
0934名無しさん@お腹いっぱい。NGNG
TSつ
0935名無しさん@お腹いっぱい。NGNG
TSつ
0936名無しさん@お腹いっぱい。NGNG
TSつ
0937名無しさん@お腹いっぱい。NGNG
TSつ
0938名無しさん@お腹いっぱい。NGNG
TSつ
0939名無しさん@お腹いっぱい。NGNG
TSつ
0940名無しさん@お腹いっぱい。NGNG
TSつ
0941名無しさん@お腹いっぱい。NGNG
TSつ
0942名無しさん@お腹いっぱい。NGNG
TSつ
0943名無しさん@お腹いっぱい。NGNG
TSつ
0944名無しさん@お腹いっぱい。NGNG
TSつ
0945名無しさん@お腹いっぱい。NGNG
TSつ
0946名無しさん@お腹いっぱい。NGNG
TSつ
0947名無しさん@お腹いっぱい。NGNG
TSつ
0948名無しさん@お腹いっぱい。NGNG
TSつ
0949名無しさん@お腹いっぱい。NGNG
TSつ
0950名無しさん@お腹いっぱい。NGNG
TSつ
0951名無しさん@お腹いっぱい。NGNG
TSつ
0952名無しさん@お腹いっぱい。NGNG
TSつ
レス数が950を超えています。1000を超えると書き込みができなくなります。