![尝试设置 Gmail“以 SMTP 邮件方式发送邮件”功能](https://linux22.com/image/673831/%E5%B0%9D%E8%AF%95%E8%AE%BE%E7%BD%AE%20Gmail%E2%80%9C%E4%BB%A5%20SMTP%20%E9%82%AE%E4%BB%B6%E6%96%B9%E5%BC%8F%E5%8F%91%E9%80%81%E9%82%AE%E4%BB%B6%E2%80%9D%E5%8A%9F%E8%83%BD.png)
好吧,我来这里是迫不得已,希望能得到解决这个问题所需的最后一点帮助。我花了两天时间寻找答案,但实际上并没有得到任何直接的答案。首先,我充其量只是个业余爱好者,当我试图理解这些事情时,这对我来说都是新领域。我会尽力描述我的问题。
在我当前的虚拟服务器上,我使用的是安装了 virtualmin 的 Centos 7。我已经设置好了电子邮件帐户,它们运行良好。(我可以使用 roundcube 登录以发送和接收邮件)。
为了方便使用这些电子邮件帐户的人们,我尝试通过 Gmail 执行“以...身份发送邮件”,以便他们可以以这些地址(而不是他们自己的个人 Gmail)回复电子邮件。
使用 smtp.domain.com 时,我总是收到“未找到域名”错误。我仔细检查以确保我的用户名和密码正确(我确实输入了正确的用户名和密码),并尝试了几种方法,看看是否有效果。以下是我到目前为止所做的操作以及 Gmail 要求的字段。
SMTP 服务器:smtp.domain.com
用户名:_________
密码:__________
端口:25、465、587(符合预期)
使用 SSL 的安全连接
使用 TLS 的安全连接
- 取消注释 master.cf 文件中的相应行
- 创建 SSL 证书并将其复制到 postfix(以及 dovecot 以便更好地测量)
- 编辑后重新启动服务器(当然)
- 使用 SSL 和 mail.domain.com 而不是 smtp.domain.com 的端口 465 登录信息,它给了我一个“响应速度太慢”的错误,所以这是使用“telnet smtp.domain.com(和三个端口中的任何一个)”测试的不同连接,但我不认为我做得对,因为它给了我“无法解析主机”
- 如果这就是应该返回的内容,我猜这些端口没有打开?在这种情况下,我该如何打开它们,因为 postfix 中的 master 和 main.cf 文件中没有任何突出的内容?我看到过您可能需要添加几行以允许 google 通过 SMTP 连接?对此我不确定。
- 我已经对所有端口执行了 - netstat -an | grep 并且从我所见,它们似乎都在监听。
- 使用 TLS 在端口 465 和 587 上尝试了另一轮 mail.domain.com。收到新错误。“身份验证失败。请检查您的用户名/密码。[服务器响应:535 5.7.8 错误:身份验证失败:通用故障代码 (535)]”
- 三次检查我的登录名/密码,以确保
- 到处寻找解决该错误的办法。毫无进展。
无论如何,这就是我目前所拥有的。感觉我只是缺少一些小东西才能让它工作。任何帮助都将不胜感激。谢谢!
以下是 master.cf
#
# Postfix master process configuration file. For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes
smtp inet n - n - 1 postscreen
smtpd pass - - n - - smtpd
#dnsblog unix - - n - 0 dnsblog
#tlsproxy unix - - n - 0 tlsproxy
submission inet n - n - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_client_restrictions=$mua_client_restrictions
-o smtpd_helo_restrictions=$mua_helo_restrictions
-o smtpd_sender_restrictions=$mua_sender_restrictions
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
smtps inet n - n - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=$mua_client_restrictions -o smtpd_helo_restrictions=$mua_helo_restrictions -o smtpd_sender_restrictions=$mua_sender_restrictions -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
#628 inet n - n - - qmqpd
pickup unix n - n 60 1 pickup
cleanup unix n - n - 0 cleanup
qmgr unix n - n 300 1 qmgr
#qmgr unix n - n 300 1 oqmgr
tlsmgr unix - - n 1000? 1 tlsmgr
rewrite unix - - n - - trivial-rewrite
bounce unix - - n - 0 bounce
defer unix - - n - 0 bounce
trace unix - - n - 0 bounce
verify unix - - n - 1 verify
flush unix n - n 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - n - - smtp
relay unix - - n - - smtp
# -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq unix n - n - - showq
error unix - - n - - error
retry unix - - n - - error
discard unix - - n - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - n - - lmtp
anvil unix - - n - 1 anvil
scache unix - - n - 1 scache
#
# ====================================================================
# Interfaces to non-Postfix software. Be sure to examine the manual
# pages of the non-Postfix software to find out what options it wants.
#
# Many of the following services use the Postfix pipe(8) delivery
# agent. See the pipe(8) man page for information about ${recipient}
# and other message envelope options.
# ====================================================================
#
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
#maildrop unix - n n - - pipe
# flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
#
# ====================================================================
#
# Recent Cyrus versions can use the existing "lmtp" master.cf entry.
#
# Specify in cyrus.conf:
# lmtp cmd="lmtpd -a" listen="localhost:lmtp" proto=tcp4
#
# Specify in main.cf one or more of the following:
# mailbox_transport = lmtp:inet:localhost
# virtual_transport = lmtp:inet:localhost
#
# ====================================================================
#
# Cyrus 2.1.5 (Amos Gouaux)
# Also specify in main.cf: cyrus_destination_recipient_limit=1
#
#cyrus unix - n n - - pipe
# user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -r ${sender} -m ${extension} ${user}
#
# ====================================================================
#
# Old example of delivery via Cyrus.
#
#old-cyrus unix - n n - - pipe
# flags=R user=cyrus argv=/usr/lib/cyrus-imapd/deliver -e -m ${extension} ${user}
#
# ====================================================================
#
# See the Postfix UUCP_README file for configuration details.
#
#uucp unix - n n - - pipe
# flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
#
# ====================================================================
#
# Other external delivery methods.
#
#ifmail unix - n n - - pipe
# flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
#
#bsmtp unix - n n - - pipe
# flags=Fq. user=bsmtp argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient
#
#scalemail-backend unix - n n - 2 pipe
# flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store
# ${nexthop} ${user} ${extension}
#
#mailman unix - n n - - pipe
# flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
# ${nexthop} ${user}
submission inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes
这是 postconf -n(基于人们从其他问题中得到的信息)
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_sender_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_client_restrictions
postconf: warning: /etc/postfix/master.cf: undefined parameter: mua_helo_restrictions
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
allow_percent_hack = no
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
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
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
mailbox_size_limit = 0
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, www.domain.com
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sender_bcc_maps = hash:/etc/postfix/bcc
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_tls_cert_file = /etc/postfix/postfix.cert.pem
smtpd_tls_key_file = /etc/postfix/postfix.key.pem
smtpd_tls_mandatory_ciphers = high
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_use_tls = yes
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual
doveconf-n:
# 2.2.10: /etc/dovecot/dovecot.conf
# OS: Linux 4.1.5-x86_64-linode61 x86_64 CentOS Linux release 7.2.1511 (Core)
auth_mechanisms = plain login
disable_plaintext_auth = no
mail_location = maildir:~/Maildir
mbox_write_locks = fcntl
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
}
passdb {
driver = pam
}
protocols = imap pop3
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_cipher_list = ECDHE-RSA-AES256-SHA384:AES256-SHA256:AES256-SHA256:RC4:HIGH:MEDIUM:+TLSv1:+TLSv1.1:+TLSv1.2:!MD5:!ADH:!aNULL:!eNULL:!NULL:!DH:!ADH:!EDH:!AESGCM
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
driver = passwd
}
这是我的 smtpd.config(位于 etc/sasl2)
pwcheck_method: saslauthd
mech_list: plain login
如果您还有其他需要,请告诉我。我在主 cf 中遇到的错误可能是一个巨大的危险信号,表明我没有取消注释正确的行或类似的东西。
我在搜索配置 postfix 时遇到的那些错误的解决方案时确实发现了这一点。它是否适用于我需要完成或缺少的工作?