메일을 보내도록 로컬 컴퓨터에서 postfix를 구성하십시오.

메일을 보내도록 로컬 컴퓨터에서 postfix를 구성하십시오.

프로세스를 자동화하려고 하는데 특정 조건이 충족되면 다음 명령을 사용하여 자동 메일을 통해 사용자에게 알리고 싶습니다.우편주문하다.

문제는 메시지가 전송되지 않는다는 것입니다. 제가 이해한 바에 따르면 먼저 몇 가지 구성을 완료해야 합니다.

문제는 내가 갈 때다.

sudo dpkg-reconfigure postfix

수정하려면 거기에 무엇을 채워야 할지 잘 모르겠습니다.

  • 1 - 첫 번째 페이지에서 시스템 이메일 이름을 묻습니다.
  • 2 - 루트 및 포스트마스터 메일 수신자에 대한 두 번째 요청
  • 3 - 메일 수신을 위한 기타 대상
  • 4 - 메일 대기열 강제 동기화 예/아니요
  • 5 - 로컬 네트워크(미리 채워져 있음)
  • 6 - 사서함 크기
  • 7 - 로컬 주소 확장 문자
  • 8 - 프로토콜(ipv6, ipv4)# I selected them both

하지만 1, 2, 3, 5, 7번은 정말 도움이 필요합니다. 테스트 이메일을 보내려고 해도 아무 것도 수신되지 않기 때문입니다.

미리 감사드립니다

고쳐 쓰다:

운영 체제 정보

NAME="Ubuntu"
VERSION="20.04 LTS (Focal Fossa)"

접미사 버전

mail_version = 3.4.10

미팅 후

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
compatibility_level = 2
inet_interfaces = all
inet_protocols = all
mailbox_size_limit = 100
mydestination = aoos.homenet.telecomitalia.it, aoos, localhost.localdomain, , localhost
myhostname = aoos.homenet.telecomitalia.it
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter =
relayhost =
smtp_tls_CApath = /etc/ssl/certs
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level = may

메일큐

-Queue ID-  --Size-- ----Arrival Time---- -Sender/Recipient-------
DD866CE073F*    2566 Sun May 10 18:17:10  MAILER-DAEMON
                                         broxigar@aoos

DA34ECE0693*    2493 Fri May 15 19:08:58  MAILER-DAEMON
                                         broxigar@aoos

D474DCE0692*    2531 Fri May 15 19:08:58  MAILER-DAEMON
                                         broxigar@aoos

CFCC4CE0690*    2491 Fri May 15 19:08:58  MAILER-DAEMON
                                         broxigar@aoos

0DC1FCE0738*    2398 Sun May 10 18:05:51  MAILER-DAEMON
                                         broxigar@aoos

D06F9CE0691*    2497 Fri May 15 19:08:58  MAILER-DAEMON
                                         broxigar@aoos

3534ECE068E      417 Fri May 15 17:01:06  broxigar@aoos
(host mx.<domain_name>.it[130.192.182.65] said: 452 4.5.2 Could not resolve sender domain. (in reply to MAIL FROM command))
                                         userXXX@<domain_name>.it

편집 후(postconf -n)

# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
# fresh installs.
compatibility_level = 2

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtp_use_tls = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt

#smtp_tls_CApath=/etc/ssl/certs
#smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
#smtp_sasl_auth_enable = yes
#smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
#smtp_sasl_security_options = noanonymous
#smtp_tls_security_level = encrypt
#smtp_tls_wrappermode = yes


smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = aoos.polito.it
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, aoos.polito.it, localhost.polito.it, localhost

#myorigin = $mydomain 
relayhost = [mail.polito.it]:465
#relay_domains = $mydestination
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

편집 후(mailq)

-Queue ID-  --Size-- ----Arrival Time---- -Sender/Recipient-------
64428CE10EA*    2334 Fri Jun 19 22:55:27  MAILER-DAEMON
                                         broxigar@aoos

편집 후(journalctl -xe)

Jun 19 22:55:29 aoos postfix/smtp[1158006]: 64428CE10EA: to=<broxigar@aoos>, relay=server.domain.it[<ip_addr>]:465, delay=2, delays=0.01/0/0.03/2, dsn=5.0.0, status=bounced (host server.domain.it[<ip_addr>] said: 551 broxigar@aoos failed to route the address (in reply to RCPT TO command))

답변1

[면책 조항: 다음은 Postfix v3.5.1에 ​​대해 완전히 테스트되었습니다. 최신 Arch Linux 설치 시. Ubuntu 20.04에서 Postfix v3.4.10 문제 해결은 main.cf및/또는 master.cf. ]

로 시작하는 매개변수 설정이 보입니다 smtpd_.... 이는 호스트의 로컬 접미사 설정이 처리할 수 있는 경우에만 필요합니다.들어오는이메일. 네가 원한다면보내다smtp 릴레이를 통해 이메일을 보내면 댓글을 달 수 있습니다.

오류 452: 보낸 사람 도메인을 확인할 수 없습니다. (MAIL FROM 명령에 응답) userXXX@\< domain_name>.it

로컬 호스트의 도메인 이름이 올바르게 확인되지 않습니다. 분명히 질문 편집으로 인해 올바르게 설정되지 않았습니다. 다음을 추가하거나 기존 구성을 수정합니다 /etc/postfix/main.cf.

append_at_myorigin = yes
append_dot_mydomain = ${{$compatibility_level} < {1} ? {yes} : {no}}
tls_append_default_CA = no
inet_interfaces = $myhostname, localhost  
                                  # might speed up your sending process if your host 
                                  # is part of a subnet with other hosts.
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = aoos                   # confirm that's the local domain name you chose 
myhostname = localhost
mynetworks_style = subnet
myorigin = $mydomain
relay_domains = $mydestination
relayhost = [smtp.gmail.com]:465  # << only when using gmail as smtp server.
                                  # Replace with your own smtp  server.  Always include
                                  # square brackets as shown + optional port.
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
                                  # or use 'smtp_tls_CApath = /etc/ssl/certs' as shown by you
smtp_tls_security_level = encrypt # Use either 'encrypt' or 'may'
smtp_tls_wrappermode = yes        # Poorly or not documented, but necessary when 
                                  # using TLS with Google's smtp outgoing mail gateway
smtp_use_tls = yes

위의 사항 외에도 사용하는 smtp 게이트웨이의 사용자 이름과 비밀번호도 보호해야 합니다. /etc/postfix/sasl_passwd아래에서는 smtp.gmail.com에 대한 예를 제공합니다.

$ cat /etc/postfix/sasl_passwd
[smtp.gmail.com]:465  <my_username>@gmail.com:<my_passwd>
$ sudo chmod 600 /etc/postfix/sasl_passwd
$ sudo postmap /etc/postfix/sasl_passwd  

편집 #1:다음과 같이 할 수도 있습니다.$ sudo chown root:postfix /etc/postfix/sasl_passwd*

postfix서비스를 활성화하고 시작했다고 가정합니다 . 활성화되지 않은 경우 다음을 수행하십시오 sudo systemctl enable postfix.

구성 매개변수를 다시 로드하고 postfix서비스를 다시 시작합니다.

$ sudo postfix reload
$ sudo systemctl restart postfix.service

마지막으로 이메일을 보내보세요.

$ touch foobar
$ mail -s "test #<my_test_nbr>" -a foobar <my_external_email> < <(echo "Hello world")
$ journalctl -xe    # report relevant warnings & errors   (***EDIT***)
$ mailq             # report full output

더 궁금한 점이 있으면 신고해 주세요. HTH.


편집 #2: postfix를 사용하여 메일을 보내려고 시도한 결과 IPv6을 통해 전송되는 것으로 나타났습니다. RFC-6724는 컴퓨터가 이중 스택(IPv4 및 IPv6 프로토콜이 동일한 네트워크 인프라에서 실행되는 경우)인 경우 먼저 IPv6에 연결을 시도해야 함을 나타냅니다. 아마도 그러한 설정이 있을 것입니다. AFAIK, Google은 IPv6을 통한 stmp 요청을 허용하지만 요청 소스가 제공하는 경우에만 허용됩니다.인증에 사용되는 역방향 도메인 이름목적. 이는 MTA 측에서 제어할 수 없으며 ISP의 손에 있습니다. 따라서 제가 여러분이라면 먼저 IPv4를 통해 전송을 시도한 다음 IPv6를 사용해 보겠습니다. 이렇게 하려면 최소한 Gmail로 테스트하려면 /etc/postfix/main.cf다음과 같이 변경하세요.

inet_protocols = ipv4

이는 모든 IP 연결이 IPv4를 사용해야 한다는 의미는 아닙니다. 여전히 IPv6(Gmail 제외)가 필요한 경우 postfix지도를 사용하여 이 문제를 해결할 수 있습니다. transport다른 게시물에서 다른 질문을 하고 싶을 수도 있습니다.

관련 정보