8

ファイアウォールの背後にあるネットワーク上にサーバーをセットアップしており、このコンピューター上のプログラムが sendmail を使用して任意の電子メール アドレスに電子メールを送信できるようにしたいと考えています。このネットワーク上で実行されている SMTP サーバー (mailrelay.example.com と呼びましょう) があり、これにより、ファイアウォールを介して送信メールを取得することになっています。

では、すべてのメールを mailrelay.example.com 経由で送信するように sendmail を構成するにはどうすればよいでしょうか? グーグルはまだ答えを教えてくれず、sendmail の設定が非常に複雑で煩わしいことを明らかにしただけです。

4

3 に答える 3

14

@eli:sendmail.cfを直接変更することは、マクロコンパイラによって生成されるため、通常はお勧めしません。

/etc/mail/sendmail.mcを編集して、次の行を含めます。

  define(`SMART_HOST',`mailrelay.example.com')dnl 

sendmail.mcマクロ構成ファイルを変更した後、sendmail構成ファイルを生成するために再コンパイルする必要があります。

  # m4 /etc/mail/sendmail.mc > /etc/sendmail.cf

そして、sendmailサービスを再起動します(Linux):

  # /etc/init.d/sendmail restart

スマートホストを設定するだけでなく、名前解決の構成を無効にして、sendmailを非標準ポートにシフトするか、デーモンモードを無効にすることもできます。

名前解決を無効にする

防火ネットワーク内にあるサーバー、またはネットワークアドレス変換(NAT)を使用しているサーバーでは、DNSまたはNISサービスを利用できない場合があります。デフォルトでDNSを使用するため、これはsendmailに問題を引き起こします。DNSが使用できない場合は、mailqに次のようなメッセージが表示されます。

  host map: lookup (mydomain.com): deferred)

sendmailが使用できる適切なDNSまたはNISサービスをセットアップする準備ができていない限り、この状況では通常、/ etc/hostsファイルを使用して行われる名前解決を構成します。これは、次のように、「service.switch」ファイルを有効にし、ファイルごとに解決策を指定することによって行われます。

1:sendmailのservice.switchを有効にします/etc/mail/sendmail.mcを編集して、次の行を含めます。

  define(`confSERVICE_SWITCH_FILE',`/etc/mail/service.switch')dnl

2:ファイルのservice.switchを構成します。名前解決のために/ etc /hostsのみを参照するように/etc/mail/service.switchを作成または変更します。

  # cat /etc/mail/service.switch
  hosts files

3:sendmail.mcを再コンパイルし、sendmailを再起動して、この設定を有効にします。

sendmailを非標準ポートにシフトするか、デーモンモードを無効にします

デフォルトでは、sendmailはポート25でリッスンします。さまざまな理由で、このポートを変更するか、sendmailデーモンモードを完全に無効にすることができます。--既知のポートの使用を禁止するセキュリティポリシーがある場合-別のSMTP製品/プロセスの場合標準ポートの同じホストで実行する必要があります-SMTP経由でメールをまったく受け入れたくない場合は、sendmailを使用して送信してください

1:非標準ポートを使用するようにsendmailをシフトします。/etc/mail/sendmail.mcを編集し、次の行の「ポート」設定を変更します。

  DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')

たとえば、sendmailでポート125を使用するには、次のようにします。

  DAEMON_OPTIONS(`Port=125,Addr=127.0.0.1, Name=MTA')

これには、sendmail.mcを再コンパイルし、sendmailを再起動する必要があります。

2:または、sendmailデーモンモードを完全に無効にするには(Linux)/ etc / sysconfig / sendmailを編集し、「DAEMON」設定を次のように変更します。

  DAEMON=no

この変更では、sendmailを再起動する必要があります。

于 2008-09-20T10:05:40.757 に答える
5

http://www.elandsys.com/resources/sendmail/smarthost.html

Sendmail スマートホスト

スマートホストは、送信メールが中継されるホストです。一部の ISP は、送信 SMTP トラフィック (ポート 25) をブロックし、ISP のメール サーバーを介してすべてのメールを送信するようユーザーに要求します。Sendmail は、ISP のメール サーバーをスマート ホストとして使用するように構成できます。

これを設定する方法については、リンク先の記事を参照してください。

于 2008-09-04T15:11:39.263 に答える
3

@Espo: どこから始めるべきかについて素晴らしいアドバイスをありがとう。既存の構成を使用してこの小さな変更を行うのではなく、sendmail を最初に使用するように構成していた場合、リンクはより良くなります。しかし、「SmartHost」で検索する方法を知ってから、もっと簡単な方法を見つけました。

/etc/mail/sendmail.cf ファイルを編集して変更するだけで済みました。

DS

DSmailrelay.example.com

その後、sendmail を再起動すると、機能しました。

于 2008-09-04T15:30:32.477 に答える