VPS にクリーンな新しい Debian 8 を再インストールしました。
すべてデフォルト値に設定されています。
dpkg -s exim4
そしてdpkg -s postfix
、eximはではありませんインストールされ、そのpostfixはインストールされています。これは、lsof -i :25
PID 478 が表示され、次に がps p 478
表示されることで確認できます478 ? Ss 0:00 /usr/lib/postfix/master
。 は実行していませんapt-get install postfix
が、デフォルトでインストールされているようです。
example.com
レジストラによってDNS MX レコードがすでに作成されており、自分のサーバーにリダイレクトされています。
Gmail から にメールを送信しました[email protected]
。
No mail
をやっているときにまだ見えます$ mail
。postfix に何かが届いたかどうかを確認するにはどうすればいいですか?
インターネットからの電子メールを受け入れるために、新しくインストールした Debian で行う設定はありますか?
root
外部のメール送信者から到着するメールを受け入れるために、ローカルにメールボックスを作成する必要がありますか[email protected]
?
iptables
以下は(変更なし、デフォルト構成)の結果です。
root@blah:~# iptables -nvL
Chain INPUT (policy ACCEPT 77135 packets, 50M bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 2 packets, 120 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 66416 packets, 11M bytes)
pkts bytes target prot opt in out source destination
私は今、cat /var/log/mail.log
次のことを理解しています:
Nov 22 11:57:32 blah postfix/smtpd[10485]: connect from mail-ua0-f171.google.com[209.85.xxx.xxx]
Nov 22 11:57:32 blah postfix/smtpd[10485]: NOQUEUE: reject: RCPT from mail-ua0-f171.google.com[209.85.xxx.xxx]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-ua0-f171.google.com>
Nov 22 11:57:32 blah postfix/smtpd[10485]: disconnect from mail-ua0-f171.google.com[209.85.xxx.xxx]
答え1
この行には必要な有用な情報が含まれています
Nov 22 11:57:32 blah postfix/smtpd[10485]: NOQUEUE: reject: RCPT from mail-ua0-f171.google.com[209.85.xxx.xxx]: 454 4.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected] ...
これは、あなたのマシンがGoogleからのメッセージを中継することを拒否していることを示しています。[メールアドレス]. これで、あなたのマシンが example.com であることがわかりましたが、明らかにあなたのマシンはそうではありません。
解決方法: ローカル設定を変更して、ローカルマシンの名前として example.com を含めます。Postfix の Web サイトに、読みやすいドキュメントがあります (((BASIC_CONFIGURATION_README.html)[[http://www.postfix.org/BASIC_CONFIGURATION_README.html#mydestination]) で設定方法が説明されています。
自分のドメイン名
mydomain パラメータは、$myhostname の親ドメインを指定します。デフォルトでは、最初の部分を削除して $myhostname から派生します (結果がトップレベル ドメインにならない限り)。
逆に、main.cf で mydomain を指定した場合、Postfix はその値を使用して、myhostname パラメータの完全修飾デフォルト値を生成します。
例 (次のいずれか 1 つだけを指定してください):
/etc/postfix/main.cf: mydomain = local.domain mydomain = virtual.domain (virtual interface)
メールを受信するドメイン
mydestination パラメータは、このマシンが別のマシンに転送するのではなく、ローカルに配信するドメインを指定します。デフォルトでは、マシン自体のメールを受信します。ホストされたドメインに対して Postfix を構成する方法については、VIRTUAL_README ファイルを参照してください。
空白やカンマで区切られた、0 個以上のドメイン名、"/file/name" パターン、および/または "type:table" 検索テーブル (hash:、btree:、nis:、ldap:、mysql: など) を指定できます。"/file/name" パターンはその内容に置き換えられます。"type:table" はテーブル検索の実行を要求し、存在をテストするだけです。検索結果は無視されます。
重要: マシンがドメイン全体のメール サーバーである場合は、$mydomain もリストする必要があります。
例1: デフォルト設定。
/etc/postfix/main.cf: mydestination = $myhostname localhost.$mydomain localhost
例 2: ドメイン全体のメール サーバー。
/etc/postfix/main.cf: mydestination = $myhostname localhost.$mydomain localhost $mydomain
例 3: 複数の DNS A レコードを持つホスト。
/etc/postfix/main.cf: mydestination = $myhostname localhost.$mydomain localhost www.$mydomain ftp.$mydomain
注意: メール配信ループを回避するには、$myhostname や localhost.$mydomain を含むマシンのすべてのホスト名をリストする必要があります。
したがって、これで十分なはずです:
mydomain = example.com
...
mydestination = $myhostname localhost.$mydomain localhost $mydomain
答え2
roaima の回答に加えて、これで解決しました:
末尾にドメイン名を追加し
mydestination = <....>, mydomain.com
ます/etc/postfix/main.cf
次の行をコメントアウトします:
#mailbox_command = procmail -a "$EXTENSION"
次にGmailから にメールを送信し
[email protected]
、数秒待ちますそうすると
mail
、新しいメールが届きます :)