- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我已经安装了一个基于 Postfix 和 Dovecot 的新邮件服务器。当我配置所有内容时,设置很好。没有错误输出或错误。
问题是:当我尝试通过客户端连接到邮件帐户时,它会在身份验证时闲置。
在/var/log/mail.log 中
dovecot: auth-worker(15467): Error: mysql(localhost): Connect failed to database (mail): Access denied for user 'mail'@'localhost' (using password: YES) - waiting for 1 seconds before retry
所以,我会说 Dovecot 无法连接到数据库/不会进行身份验证。但我不知道为什么。数据库用户拥有该数据库的正确权限/也试图刷新权限。我读到有时由于加密算法导致身份验证失败。所以我使用 OLD_PASSWORD
函数设置邮件用户密码(发现 here )。也不会工作。
这是我的驱动程序 conf (dovecot-mysql.conf)
driver = mysql
connect = host=localhost dbname=mail user=mail password='mypassword'
default_pass_scheme = PLAIN-MD5
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT CONCAT('maildir:/var/vmail/',maildir) AS mail, 6000 AS uid, 6000 AS gid FROM mailbox WHERE username = '%u'
(我的密码在此处更改)
所以我不知道为什么它不会给我访问数据库的权限。有人有什么想法吗?
如有任何帮助,我将不胜感激!
注解:
服务器:Debian v7.9
数据库:MySQL 5.6.25
鸽舍:2.1.7
后缀:2.9.6
postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
disable_vrfy_command = yes
dovecot_destination_recipient_limit = 1
inet_interfaces = all
local_transport = virtual
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = markheumueller.de, localhost
myhostname = h2377359.stratoserver.net
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $smtpd_sender_login_maps
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_sasl_authenticated permit_mynetworks reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_path = private/auth_dovecot
smtpd_sasl_type = dovecot
smtpd_sender_login_maps = proxy:mysql:/etc/postfix/mysql-sender-login-maps.cf
smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch reject_unknown_sender_domain
smtpd_tls_cert_file = /etc/postfix/ssl/mailserver.crt
smtpd_tls_key_file = /etc/postfix/ssl/mailserver.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_gid_maps = static:6000
virtual_mailbox_base = /var/vmail/
virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual-domains-maps.cf
virtual_mailbox_limit = 0
virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_minimum_uid = 104
virtual_transport = dovecot
virtual_uid_maps = static:6000
最佳答案
日志文件中的错误显然是从Mysql Server 转发过来的。并且它指出用户邮件无法连接到本地主机。
您需要检查 mysql-server 是否:
看看是否真的有这样的条目:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
如果有这样一行,请尝试将您的设置更改为:
driver = mysql
connect = host=127.0.0.1 dbname=mail user=mail password='mypassword'
有时它会有所帮助。
如果“netstat”突击队没有传送包含 127.0.0.1:3306 的行,
如果它运行并监听正常,但仍然没有通过 dovecot/postfix 使用您的 mysql 帐户和数据库设置的身份验证,然后尝试通过终端窗口中的命令行使用相同的凭据进行连接:
mysql -u 邮件 -h localhost 邮件 -p
这样的控制台登录应该会成功。
如果您在执行此登录尝试时收到与日志文件中类似的错误,那么您没有在 mysql 中正确设置用户访问参数。只需为此使用正确的 GRANT SQL 语句,方法与我在这里类似:
~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 505705
Server version: 5.5.49-0+deb8u1 (Debian)
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> GRANT ALL PRIVILEGES ON mail.* TO 'mail'@'localhost' IDENTIFIED BY 'your.password.here';
mysql> GRANT ALL PRIVILEGES ON mail.* TO 'mail'@'127.0.0.1' IDENTIFIED BY 'your.password.here';
在mysql中使用GRANT语句就不需要FLASH PRIVILEGES。
您可以限制您的用户权限,而不是 GRANT ALL PRIVILEGES 部分,只需使用:GRANT usage on mail.* TO 'mail'@'127.0.0.1' IDENTIFIED BY 'your.password.here';GRANT SELECT on mail.* TO 'mail'@'127.0.0.1' IDENTIFIED BY 'your.password.here';
希望这对您有所帮助。
关于mysql - Postfix + Dovecot 连接数据库失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34829877/
我想知道是否有办法用变量中的另一个字符替换一个字符。例如,用字符串变量中的下划线替换每个点。 最佳答案 我还没有尝试过,但基于 Variables specification ,我尝试解决这个问题的方
Dovecot 支持两者 mbox和 maildir格式来存储电子邮件。我搜索了它的文档以将所有电子邮件存储在 MySQL 中数据库,但我找不到它。 是否可以告诉 dovecot 将所有传出和传入的电
我想使用 Postfix+Dovecot 作为电子邮件解决方案。我们已经有一个正在运行 Woltlab Burning Board 的网站。其中一些用户(支持人员、版主、开发人员)将获得电子邮件地址。
使用 ubuntu 14.04、dovecot、postfix 和 Thunderbird 我正在使用 dovecot 和 postfix,并已将 postfix 设置为使用 Maildir。 我已经
我最近使用 zpanel(使用 dovecot 和 Maildir 格式)为我的域设置邮件服务器,并使用 user@my-domain 创建了一个用户电子邮件帐户。 com 在这里。 这里所有的电子邮
我尝试为 dovecot 启用 SSL。所以我用 openssl 生成/安装了证书。但是当我尝试测试连接时,客户端报告错误。也许有人可以帮助我。给我指明正确的方向? 命令行输入: openssl s_
我在 Linux 系统上设置了一个 Dovecot 邮件服务器。它工作正常。我能够看到电子邮件进入邮件服务器。我编写了每小时运行一次的 Java 代码,并将新收到的电子邮件从邮件服务器复制到某个目录。
我已经安装了一个基于 Postfix 和 Dovecot 的新邮件服务器。当我配置所有内容时,设置很好。没有错误输出或错误。 问题是:当我尝试通过客户端连接到邮件帐户时,它会在身份验证时闲置。 在/v
求助!我正在尝试使用 Postfix 和 Dovecot 在 LAN 上设置内部邮件服务器。一切似乎都配置良好,电子邮件已发送(并在我的 gmail 帐户上接收)但从未在本地服务器上收到(使用 Squ
SELECT CONCAT('maildir:/var/vmail/',maildir) AS mail, 5000 AS uid, 5000 AS gid FROM ma
关闭。这个问题是not about programming or software development .它目前不接受答案。 这个问题似乎不是关于 a specific programming
我将 Outlook 客户端设置为使用 imap 连接到我的邮件服务器。问题是我在 Outlook 中看到的唯一文件夹是“收件箱”和“垃圾邮件” 这是我的doveconf -n # 2.1.7: /e
我们有一个邮件服务器快要死了,在退役之前正在将帐户迁移到新服务器。该计算机拥有跨 25 个以上域的 800 多个电子邮件帐户,因此在迁移完成之前保持正常运行非常重要。 最近它开始充满错误日志,由于没有
我已经配置了一个 Ubuntu 14.04 服务器并且运行良好了一段时间。上面安装并运行正常的 web、ftp 和邮件服务器。一周前,我用来连接管理控制台和邮件的 SSL 证书过期了,我继续从 Sta
尝试从我的 outlook 客户端发送电子邮件时出现此错误 554 Relay access denied。 我可以阅读收到的邮件,但无法发送。 如果我使用 telnet localhost 25 连
我需要知道哪些邮箱不使用电子邮件并删除它们。我想更改 dovecot-sql.conf: UPDATE users SET last_=NOW() WHERE username = '%u' 但结果是
我已使用以下说明来安装邮件服务器: http://www.geoffstratton.com/ubuntu-mail-server-postfix-dovecot-and-mysql 现在我正在尝试用
我在我的服务器上运行 Dovecot + Postfix,并且我希望 PHP 生成电子邮件帐户。除了密码之外,一切都有效。他们正在使用MySQL函数,但我不能使用它,因为我使用Symfony(至少我认
我正在尝试使用 Python 的 smtplib 连接到 Dovecot 服务器。两者看起来都很有能力,但我一定缺少一些基本的东西。在任何一个文档中都找不到任何内容。 非 SSL 连接会立即被拒绝..
telnet 本地主机 pop3正在尝试::1...正在尝试 127.0.0.1...telnet:无法连接到远程主机:连接被拒绝 netstat -l tcp 0 0 *:www : 听 tcp 0
我是一名优秀的程序员,十分优秀!