问题描述
有人可以帮助我吗?我已经将这个问题困扰了将近一个星期。我试图找到一种解决方案,但到目前为止没有用。
我不知道/不知道我在这里缺少什么。我查看了许多帖子和解决方案,并进行了尝试,但似乎没有任何帮助。
我已经在RHEL 8中安装了 Postfix / Dovecot 。我删除了sendmail。我只使用postfix和dovecot。
我正在关注本教程。但是到目前为止还没什么工作。
https://www.youtube.com/watch?v=fEk_ZR1k91s&ab_channel=SysTech
这是我的email.PHP,位于 /var/www/html/email.PHP
<?PHP
error_reporting(-1);
ini_set('display_errors','On');
set_error_handler("var_dump");
$header = "From: nor[email protected]\r\n";
$header.= "MIME-Version: 1.0\r\n";
$header.= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$header.= "X-Priority: 1\r\n";
$to = "[email protected]";
$subject = "Test email from RHEL8";
$message = "test content";
$status = mail($to,$subject,$message,$header);
if($status)
{
echo '<p>Your mail has been sent!</p>';
} else {
echo '<p>Something went wrong. Please try again!</p>';
}
?>
这是我在/ var / log / maillog中的邮件日志。如下错误
Oct 24 18:30:37 WEB-PBLC postfix/pickup[2864]: 325E57444: uid=48 from=<apache>
Oct 24 18:30:37 WEB-PBLC postfix/cleanup[3110]: 325E57444: message-id=<[email protected]>
Oct 24 18:30:37 WEB-PBLC postfix/qmgr[2865]: 325E57444: from=<[email protected]>,size=454,nrcpt=1 (queue active)
Oct 24 18:30:37 WEB-PBLC postfix/trivial-rewrite[3111]: warning: hash:/etc/postfix/transport is unavailable. open database /etc/postfix/transport.db: No such file or directory
Oct 24 18:30:37 WEB-PBLC postfix/trivial-rewrite[3111]: warning: hash:/etc/postfix/transport lookup error for "[email protected]"
Oct 24 18:30:37 WEB-PBLC postfix/trivial-rewrite[3111]: warning: transport_maps lookup failure
Oct 24 18:30:37 WEB-PBLC postfix/error[3112]: 325E57444: to=<[email protected]>,relay=none,delay=0.01,delays=0/0/0/0,dsn=4.3.0,status=deferred (address resolver failure)
这是我的/etc/postfix/main.cf
compatibility_level = 2
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = mail.company.com
mydomain = company.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = all
mydestination = $myhostname,localhost.$mydomain,localhost
unkNown_local_recipient_reject_code = 550
mynetworks = 122.217.XX.XX/28,127.0.0.0/8
relay_domains = company.com
transport_maps = hash:/etc/postfix/transport
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailBox = Maildir/
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.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix/samples
readme_directory = /usr/share/doc/postfix/README_FILES
smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem
smtpd_tls_key_file = /etc/pki/tls/private/postfix.key
smtpd_tls_security_level = may
smtp_tls_CApath = /etc/pki/tls/certs
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtp_tls_security_level = may
Meta_directory = /etc/postfix
shlib_directory = /usr/lib64/postfix
对于Dovecot /etc/dovecot/dovecot.conf
,我如下更改文件。
listen = *
dict {
#quota = MysqL:/etc/dovecot/dovecot-dict-sql.conf.ext
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
!include conf.d/*.conf
!include_try local.conf
对于/etc/dovecot/conf.d/10-auth.conf
文件,我添加了这两行。
disable_plaintext_auth = no
auth_mechanisms = plain login
对于/etc/dovecot/conf.d/10-mail.conf
文件,我仅编辑此行
mail_location=maildir:~/Maildir
对于/etc/dovecot/conf.d/10-master.conf
文件,我编辑此行
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postifx
group = postfix
}
对于/etc/dovecot/conf.d/10-ssl.conf
,我仅编辑此行
ssl = yes
然后,我重新启动服务器,重新启动postfix并运行
systemctl enable --Now dovecot
firewall-cmd --add-service=pop3 --permanent
firewall-cmd --add-service=imap --permanent
firewall-cmd --reload
但是我的邮件日志中仍然出现错误。有人真的可以帮我解决这个问题吗?我被困了将近一个星期。我仍然无法使用简单的PHP mail()发送电子邮件。
帮助。非常感谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)