Exim:ローカルネットワークからメールを送信するときに送信者アドレスを変更する


8

ユーザーがメールを送受信できるサイトにexim設定が機能しています。ローカルネットワークの外部にあるアドレスに電子メールを使用して警告とエラーを送信するようにサーバーをセットアップしようとしています。

問題は:

メールを送信するプログラムは、実行するユーザー名とサーバーのローカルホスト名を使用してメールを送信します。これにより、メールの送信者の形式はmyapp@myserver.mydomainになります。EximはこれらのメールをISPのSMTPサーバーに送信します。ISPサーバーは、違法または検証不可能な送信者(内部アドレス)を持っているメールを拒否します。

以下の場合、送信者を書き換えるようにeximを設定する必要があると思います。

  • 送信者のドメインはローカルネットワーク上にあります
  • 受信者のドメインはローカルネットワークの外にあります

eximの設定でなんらかの書き換えを設定してみましたが、うまく機能しませんでした。何を試したかを示しますが、サイトに最後にアクセスしたときに時間切れになり、試行したすべての変更が失われて元のバージョンに戻す必要がありました。

回答:


9
begin rewrite
myapp@myserver.mydomain   legal.user@myserver.mydomain   SFfrs

フラグには次の意味があります。

  1. S-SMTP時にすべての書き換えを行います。つまり、次のフラグはすべて、それらが適用されるデータが入ってくるとすぐに実行され、後で遅くなることはありません。
  2. F-エンベロープをフィールドから書き換えます。
  3. f-From:ヘッダーフィールドを書き換えます。
  4. r-Reply-To:ヘッダーフィールドを書き換えます。
  5. s-Sender-To:ヘッダーフィールドを書き換えます。

読む第31章メッセージの書き換えについての詳細はEximの仕様の


1
これが私がそれを機能させた方法ですが、例外です:正規表現^S除いて、ルールの最初にaが必要です
Esa Varemo

1
sは " Sender:"ヘッダーではない "である必要がありますSender-To:(そして、投稿を編集するには小さすぎる変更です)
Gert van den Berg

11

ファイル/etc/email-addressesは問題を処理する必要があります。これはEximディストリビューションの標準的な部分です。メールを送信するローカルユーザーごとに1つのレコードを設定する必要があります。

/etc/email-addresses好きなように行を試してください:

 myapp:   donotreply@example.com

MXサーバーに次のようなエイリアスを追加します。

 donotreply:    :blackhole:

使用するReply-to:受信者がメッセージに返信することを可能にするヘッダ。

ファイル/etc/email-addressesは、次の書き換えコードで使用されrewriteます。これは、構成ファイルのセクションの先頭にある必要があります。

*@+local_domains "${lookup{${local_part}}lsearch{/etc/email-addresses}\
                  {$value}fail}" Ffrs

/etc/email-addressesサーバーに存在しません。作成することはできますか、それとも何か不足していることを示していますか?
Esa Varemo 2013年

@EsaVaremoの構成ファイルをGrepするemail-addressesか、構成ファイルでrewriteセクションを確認します。これはディストリビューションで設定されていなかった可能性があります。
BillThor 2013年

を試しgreplocate数ページを探しましたmanが何も見つかりませんでした。ファイルをで定義する必要がありますexim.confか?
Esa Varemo 2013年

@EsaVaremo私の応答の最後の行は、の書き換えセクションにあるはずですexim.conf。ない場合は追加してください。変数local_domainsにドメインが含まれていることを確認してください。
BillThor 2013年

最後のコメントを書いてからしばらくして、あなたの編集に気づきました。どういうわけか私はそれがうまくいかなかったので、時間が足りなくなったので、私は他の答えを選びました。私はこれが正しいことを疑いません、おそらく何かを誤って入力/構成しただけです...
Esa Varemo 2013年

1

/etc/email-addressesユーザー名ごとに1 つのメールアドレスを関連付ける必要がある場合に便利です。ただし、ユーザーが複数のアドレスでメールを送信する必要がある場合は、/etc/email-addresses毎回変更する必要があり、必然的に間違ったアドレスを使用することになります。

別のアプローチは、exim4コマンドとその-fオプションを使用して電子メールを送信することです:

$ cat email|/usr/sbin/exim4 -f myapp@example.com recipient@example.com

以下のためにという注意-f作業のオプション、あなたが許可され、信頼できない送信者として彼を受け入れるのeximの信頼できるユーザーまたはeximのにあるように、ユーザーのいずれかが必要です。

私の場合、後者のワイルドカードのおかげで、後者がデフォルトでした/etc/exim4/conf.d/main/02_exim4-config_options :

untrusted_set_sender = *

他の解決策は、次の行を追加/etc/exim4/conf.d/main/00_local_settingsすることです(eximの分割構成を想定し、まだ存在しない場合は作成します)。

MAIN_TRUSTED_USERS = yourusername

どちらのオプションもeximの設定をリロードする必要があります。Debianの場合:

# dpkg-reconfigure exim4-config
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.