Ma c Catalina (10.15.4) Postfix - невозможно отправлять электронную почту из командной строки, а mail.log не существует - PullRequest
1 голос
/ 26 мая 2020

Ma c Catalina (10.15.4) Postfix - невозможно отправить электронную почту из командной строки, а mail.log не существует

Я использую MacOS Catalina (10.15.4) и пытаюсь отправить электронное письмо из командной строки (чтобы позже я мог отправить электронное письмо с веб-страницы, используя PHP), но мой /var/log/mail.log отсутствует. Я попытался создать mail.log вручную, используя:

> sudo touch /var/log/mail.log

, но сообщения об ошибках postfix все еще не записываются в mail.log. Я попытался изменить владельца mail.log на _postifx:

> sudo chown root:admin mail.log

, но получил следующее сообщение об ошибке:

> sudo chown _postifx:wheel mail.log 
> chown: _postifx: illegal user name

Электронная почта не отправляется или, по крайней мере, не приходит в моем почтовом ящике при отправке из командной строки с использованием:

date | mail -s "Test Email" [email username]@gmail.com

Когда я запускаю mailq, вывод будет:

-Queue ID-  --Size-- ----Arrival Time---- -Sender/Recipient-------
93059425861       347 Fri May 22 04:20:10  [machine username]@[machine name].local
(connect to smtp.gmail.com[2607:f8b0:400e:c08::6c]:587: No route to host)
[email username]@gmail.com`

Обычно я использую VPN, но я протестировал отправку электронной почты из командной строки как в VPN, так и вне ее, и я получаю такое же сообщение об ошибке в mailq.

В моем sasl_passwd есть одна запись:

[smtp.gmail .com]: 587 [имя пользователя электронной почты] @ gmail.com: [пароль]

где я знаю [имя пользователя электронной почты] и [пароль] (нет [] окружающих «имя пользователя электронной почты» и «пароль» в sasl_passwd) верны.

Единственные критические (я думаю) раскомментированные строки в /etc/postfix/main.cf:

compatibility_level = 2
queue_directory = /private/var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = _postfix
myhostname = smtp.gmail.com
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = _postdrop
message_size_limit = 10485760
mailbox_size_limit = 0
biff = no
mynetworks = 127.0.0.0/8, [::1]/128
smtpd_client_restrictions = permit_mynetworks permit_sasl_authenticated permit
recipient_delimiter = +
tls_random_source = dev:/dev/urandom
smtpd_tls_ciphers = medium
inet_interfaces = loopback-only
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_use_tls = yes`
  1. Как мне получать сообщения об ошибках написано на /var/log/mail.log? и
  2. Как мне получить электронное письмо для успешной отправки из командной строки (чтобы в конечном итоге я мог отправить электронное письмо через PHP на веб-странице)?
...