為子網域上的入站郵件設定郵件伺服器以觸發 php 腳本

為子網域上的入站郵件設定郵件伺服器以觸發 php 腳本

我正在嘗試將我的公司伺服器設定為能夠接收發送到我們主網域的子網域上的某個帳戶的電子郵件,即:[電子郵件受保護]

這些傳入的郵件程式應該觸發一個 php 腳本來處理一些內容。

我正在執行 Ubuntu Server 20.0.4,安裝了 Postfix,安裝了 Dovecot,我也嘗試使用 courier,所以也有,但我無法啟動

我已經走到這一步了:

  • 我建立了一個 linux 使用者並配置 postfix 使用本機帳戶作為有效郵箱
  • 我將 postfix 設定為接受 subdomain.domain.com 傳入的郵件
  • 我新增了子網域的 A 和 MX 記錄,以便在 google 網域中正確路由
  • 我在子網域上配置了 SSL(在導航到所述子網域時確認在 ssllabs 中並透過 apache 正常運作)
  • 我在 /etc/postfix/master.cf 中添加了一些額外的配置來觸發 php 腳本(現在只是一個測試腳本/佔位符):
    smtp      inet  n       -       -       -       -       smtpd
        -o content_filter=myhook:dummy
    ...
    # PHP SCRIPT HOOK
        myhook unix - n n - - pipe
          flags=F user=www-data argv=/path/to/script/MailParser.php ${sender} ${size} ${recipient}   

MailParser.php 腳本僅觸發寫入日誌文件,顯示“已成功取得傳入郵件timestamp

如果我使用這些設定透過 smtper.net 傳送郵件

它成功觸發腳本寫入日誌,我可以在用戶的系統郵件中看到來自 smtper.net 的「測試」訊息,所以一切似乎都很好。

但是,如果我嘗試透過普通電子郵件用戶端(例如我的 Gmail 帳戶)發送郵件,則會收到無法投遞的退回郵件,並顯示錯誤:

550 5.1.1 您嘗試存取的電子郵件帳號不存在。請嘗試仔細檢查收件者的電子郵件地址是否有拼字錯誤或不必要的空格。了解更多信息,請訪問https://support.google.com/mail/?p=NoSuchUserf16si1842833plj.1 - gsmtp

我被困在這一點上。

答案1

正如 @anx 指出的那樣,問題出在 MX 記錄上。此外,網域上的 SSL 憑證未完全配置,因此也會導致問題。否則我的本機伺服器配置設定正確。

相關內容