모든 로컬 메일을 단일 외부 이메일로 보내기

모든 로컬 메일을 단일 외부 이메일로 보내기

Google의 SMTP 서버를 사용하여 모든 로컬 메일을 단일 외부 이메일로 보내려고 합니다.

Google의 SMTP 서버를 사용하는 것은 mailutils의 메일을 사용하여 외부 주소로 메일을 보낼 수 있기 때문에 작동합니다.

로컬 메일을 외부 이메일로 리디렉션하는 기능이 작동하지 않습니다. 내 계정에서 루트로 메일 보내기를 테스트할 때 다음을 사용합니다.

echo "Body" | mail -s "Test Postfix To Root" root
  • 메시지를 받은 적이 없어요
  • /var/log/mail.err에 새로운 내용이 나타나지 않습니다.
  • 이는 /var/log/mail.log에 나타납니다.
Sep  4 18:48:06 desktop1204test postfix/pickup[5535]: C9326EE26: uid=1000 from=
Sep  4 18:48:06 desktop1204test postfix/cleanup[5702]: C9326EE26: message-id=
Sep  4 18:48:06 desktop1204test postfix/qmgr[5534]: C9326EE26: from=, size=401, nrcpt=1 (queue active)
Sep  4 18:48:06 desktop1204test postfix/local[5704]: C9326EE26: to=, orig_to=, relay=local, delay=0.03, delays=0.02/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Sep  4 18:48:06 desktop1204test postfix/qmgr[5534]: C9326EE26: removed

내 거 /etc/postfix/main.cf:

inet_interfaces = loopback-only
mynetworks = loopback-only
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
virtual_alias_domains = localhost.localdomain
virtual_alias_maps = hash:/etc/postfix/virtual
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes

내 거 etc/aliases:

# See man 5 aliases for format
postmaster:    root

내 /etc/postfix/virtual:

@localhost.localdomain        [email protected]

어떻게 작동하게 할 수 있나요? 지역 우편물이 지역적으로 도착하는 것을 원하지 않습니다. 모두 로 보내야 합니다 [email protected].


아래 의견에 제안된 솔루션을 시도했지만 작동하지 않았습니다.*: [email protected]/etc/aliases

test@desktop1204test:~$ sudo newaliases
test@desktop1204test:~$ cat /etc/aliases
# See man 5 aliases for format
postmaster:    root
*: [email protected]
test@desktop1204test:~$ sudo newaliases 
test@desktop1204test:~$ sudo service postfix restart
 * Stopping Postfix Mail Transport Agent postfix                                                     [ OK ] 
 * Starting Postfix Mail Transport Agent postfix                                                     [ OK ] 
test@desktop1204test:~$ echo "Body" | mail -s "Test Postfix To Root $(date)" root
test@desktop1204test:~$ tail /var/log/mail.err 
test@desktop1204test:~$ tail /var/log/mail.log 
......
Sep  4 22:46:12 desktop1204test postfix/master[7224]: daemon started -- version 2.9.6, configuration /etc/postfix
Sep  4 22:46:23 desktop1204test postfix/pickup[7227]: 859AFF6A8: uid=1000 from=<test>
Sep  4 22:46:23 desktop1204test postfix/cleanup[7235]: 859AFF6A8: message-id=<[email protected]>
Sep  4 22:46:23 desktop1204test postfix/qmgr[7228]: 859AFF6A8: from=<[email protected]>, size=431, nrcpt=1 (queue active)
Sep  4 22:46:23 desktop1204test postfix/local[7237]: 859AFF6A8: to=<[email protected]>, orig_to=<root@desktop1204test>, relay=local, delay=0.02, delays=0.02/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Sep  4 22:46:23 desktop1204test postfix/qmgr[7228]: 859AFF6A8: removed
test@desktop1204test:~$

답변1

(이것은 AskUbuntu에서 답변되었습니다.패시 소미넨, 그에게 정말 감사합니다! )

이는 가상 정규식(/etc/postfix/virtual-regexp)을 통해 수행할 수 있습니다.

/.+@.+/ [email protected]

그런 다음 main.cf에서:

virtual_maps = hash:/etc/postfix/virtual, regexp:/etc/postfix/virtual-regexp

및 지도 파일:

postmap /etc/postfix/virtual-regexp

이렇게 하면 모든 로컬 메일의 문제가 해결됩니다. 그렇지 않으면 가상 주소를 지정해야 합니다.

답변2

모든 루트 메일에 하나의 이메일 전달을 사용
echo "your_email_address" >> /etc/aliases && newaliases하고 다음을 사용하여 테스트합니다.
echo "body" | mail -s "subject" root

이제 루트로 전송된 모든 애플리케이션이 귀하의 이메일로 전송됩니다. 자세한 내용을 보려면 여기를 클릭하세요:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-16-04#step-3- 테스트 SMTP 서버

관련 정보