web-dev-qa-db-ja.com

sendmailで送信者アドレス/ドメインを変更できません

Sendmailを備えたサーバーがあり、PHPからメールを送信する必要があります。同じサブネット上に内部SMTPサーバーがあるため、FEATURE(nullclient '、mail.server.local')dnlを使用してsendmailを構成しました。ここで、mail.server.localは/etc/hostsの内部IPで解決されます

fromアドレスとドメインを変更する方法はありません。常に[email protected].です

Mar 20 16:18:48 nameoftheserver sm-mta[16402]: v2KFImVi016402: from=<[email protected]>, size=406, class=0, nrcpts=1, msgid=<[email protected]>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]  

/etc/mail/sendmail.mcの出力:

      (short domain name) $w = nameoftheserver  
  (canonical domain name) $j = nameoftheserver.localdomain.local  
         (subdomain name) $m = localdomain.local  
              (node name) $k = nameoftheserver

この値を変更するにはどうすればよいですか?

3
Kreker

したがって、Sendmailでエンベロープ送信者を変更(PHPのmail()関数は「From:」アドレスをすでに処理しているため)を試みています。これは、genericstableデータベースを構築して、入力送信者アドレスを目的のアドレスにマップすることで実現できます。

  1. マッピングを含むテキストファイル/etc/mail/genericstableを作成し、

    www-data       [email protected]
    root           [email protected]
    

    最初の値は元のユーザー名で、2番目の値は目的のアドレスです。または、これがノードサーバーで機能しない場合は、元の送信者アドレスの形式も可能です。

    [email protected]  [email protected]
    
  2. 改行で区切られたドメインを含む別のファイル/etc/mail/generics-domainsを作成します。 (ファイルにはサーバーの正規ドメイン名を含める必要があることに注意してください。)

  3. 対応するステートメントを/etc/mail/sendmail.mcに追加します。

    FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl
    GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl
    
  4. Sendmailを再構成した後、通常の手順を実行します。

    cd /etc/mail
    /usr/bin/make
    /usr/bin/newaliases
    systemctl restart sendmail.service
    
4
Esa Jokinen