Chinaunix

标题: postfix+postfixadmin+dovecot 不能发信! [打印本页]

作者: akazhuk    时间: 2015-09-17 15:45
标题: postfix+postfixadmin+dovecot 不能发信!
本帖最后由 akazhuk 于 2015-09-17 15:55 编辑

maillog:
Sep 17 15:29:22 ebs-37463 postfix/smtpd[32266]: warning: database /etc/aliases.db is older than source file /etc/aliases
Sep 17 15:29:22 ebs-37463 postfix/smtpd[32266]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
Sep 17 15:29:22 ebs-37463 postfix/smtpd[32266]: warning: smtpd_sasl_auth_enable is true, but SASL support is not compiled in
Sep 17 15:29:22 ebs-37463 postfix/smtpd[32266]: connect from unknown[116.5.xx.xxx]
Sep 17 15:29:22 ebs-37463 postfix/smtpd[32266]: NOQUEUE: reject: RCPT from unknown[116.5.xx.xxx]: 454 4.7.1 <511xxxxxx@qq.com>: Relay access denied; from=<tang@xxx.com> to=<511xxxxxx@qq.com> proto=ESMTP helo=<JK-PC>
Sep 17 15:29:22 ebs-37463 postfix/smtpd[32266]: disconnect from unknown[116.5.xx.xx] ehlo=1 mail=1 rcpt=0/1 quit=1 commands=3/4

main.cf:
  1. command_directory = /usr/sbin
  2. config_directory = /etc/postfix
  3. daemon_directory = /usr/libexec/postfix
  4. data_directory = /var/lib/postfix
  5. debug_peer_level = 2
  6. html_directory = no
  7. mail_owner = postfix
  8. mailq_path = /usr/bin/mailq
  9. manpage_directory = /usr/local/man
  10. newaliases_path = /usr/bin/newaliases
  11. queue_directory = /var/spool/postfix
  12. readme_directory = no
  13. sample_directory = /etc/postfix
  14. sendmail_path = /usr/sbin/sendmail
  15. setgid_group = postdrop
  16. unknown_local_recipient_reject_code = 550
  17. ################################################################################

  18. myhostname = mail.xxx.com
  19. mydomain = xxx.com
  20. myorigin = $mydomain
  21. mydestination =

  22. mynetworks = 127.0.0.0/8
  23. relay_domains = $mydestination
  24. inet_interfaces = all
  25. home_mailbox = Maildir/
  26. ############################################################################
  27. virtual_alias_maps = mysql:/etc/postfix/mysql/mysql_virtual_alias_maps.cf
  28. virtual_gid_maps = static:33
  29. virtual_mailbox_base = /var/vmail             ###虚拟用户目录
  30. virtual_mailbox_domains = mysql:/etc/postfix/mysql/mysql_virtual_domains_maps.cf
  31. virtual_mailbox_maps = mysql:/etc/postfix/mysql/mysql_virtual_mailbox_maps.cf
  32. virtual_minimum_uid = 33                          ### 给 apache 权限。
  33. virtual_transport = virtual
  34. virtual_uid_maps = static:33
  35. #################################################################################
  36. message_size_limit = 52428800
  37. mailbox_size_limit = 209715200
  38. virtual_mailbox_limit = 209715200
  39. virtual_create_maildirsize = yes
  40. virtual_mailbox_extended = yes
  41. virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql/mysql_virtual_mailbox_limit_maps.cf
  42. virtual_mailbox_limit_override = yes
  43. virtual_overquota_bounce = yes
  44. #################################################################################
  45. smtpd_sasl_auth_enable = yes
  46. smtpd_sasl_type = dovecot               ###定义安装方式  dovecot
  47. smtpd_sasl_path = private/auth-client    #####  路径要与 dovecot 一样,一会要讲到
  48. broken_sasl_auth_clients = yes

  49. #smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

  50. smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated,

  51. smtpd_recipient_restrictions = permit_mynetworks,
  52.                                 permit_sasl_authenticated,
  53.                                 reject_invalid_hostname,
  54.                                 reject_non_fqdn_hostname,
  55.                                 reject_unknown_sender_domain,
  56.                                 reject_non_fqdn_sender,
  57.                                 reject_non_fqdn_recipient,
  58.                                 reject_unknown_recipient_domain,
  59.                                 reject_unauth_pipelining,
  60.                                 reject_unauth_destination
复制代码
dovecot.conf:
  1. base_dir = /var/run/dovecot/
  2. protocols = pop3 pop3s
  3. listen = *
  4. disable_plaintext_auth = no
  5. log_path = /var/log/dovecot.log
  6. info_log_path = /var/log/dovecot.info
  7. log_timestamp = "%Y-%m-%d %H:%M:%S "
  8. ssl_disable = yes
  9. mail_location = maildir:/var/vmail/%u
  10. mail_privileged_group = mail
  11. first_valid_uid = 33
  12. protocol imap {
  13. }
  14. protocol pop3 {
  15.       pop3_uidl_format = %08Xu%08Xv
  16. }
  17. protocol managesieve {
  18.      sieve=~/.dovecot.sieve
  19.      sieve_storage=~/sieve
  20. }

  21. auth default {
  22.     mechanisms = plain login
  23.    passdb pam {
  24.   }
  25.   passdb sql {
  26.     args = /etc/dovecot/dovecot-sql.conf
  27.   }
  28.   userdb passwd {
  29.   }

  30.   userdb sql {
  31.     args = /etc/dovecot/dovecot-sql.conf
  32.   }

  33.   user = root
  34.   socket listen {
  35.     client {
  36.       path = /var/spool/postfix/private/auth-client               ###这里对应 postfix  smtpd_sasl_path  
  37.       mode = 0660
  38.         user = postfix
  39.         group = postfix
  40.     }
  41.   }
  42. }


  43. dict {
  44. }

  45. plugin {

  46. }
复制代码
测试postfix:
  1. root@ebs-37463:~# telnet mail.xxx.com 25
  2. Trying 211.xxx.xxx.xxx...
  3. Connected to mail.xxx.com.
  4. Escape character is '^]'.
  5. 220 mail.xxx.com ESMTP Postfix
  6. ehlo mail.xxx.com
  7. 250-mail.xxx.com
  8. 250-PIPELINING
  9. 250-SIZE 52428800
  10. 250-VRFY
  11. 250-ETRN
  12. 250-ENHANCEDSTATUSCODES
  13. 250-8BITMIME
  14. 250 DSN
复制代码
测试dovecot:
  1. root@ebs-37463:~# telnet mail.xxx.com 110
  2. Trying 211.xxx.xxx.xxx...
  3. Connected to mail.xxx.com.
  4. Escape character is '^]'.
  5. +OK Dovecot (Ubuntu) ready.
复制代码
不知道是不是这里的问题:connect from unknown[116.5.xx.xxx]
Sep 17 15:29:22 ebs-37463 postfix/smtpd[32266]: NOQUEUE: reject: RCPT from unknown[116.5.xx.xxx]: 454 4.7.1 <511xxxxxx@qq.com>: Relay access denied; from=<tang@xxx.com> to=<511xxxxxx@qq.com> proto=ESMTP helo=<JK-PC>

这里的116.5.xx.xxx并不是服务器的IP,好像是公司的外网IP,服务器IP是这个:211.xxx.xxx.xxx,我的mail.xxx.com这个域名明明是指向了服务器的IP,不知道为什么发信的时候会变了116.5.xx.xxx这个IP。。
如果将mynetworks = 127.0.0.0/8 改成 mynetworks = 127.0.0.0/8, 116.5.xx.x/24  邮件客户端可以发信,但依然不能收信,估计是域名指向的是211.xxx.xxx.xxx这个IP,而不是116.5.xx.x
大神们求助!!!
作者: 3645636    时间: 2015-09-17 19:12
加QQ1474804934, 我帮你
作者: shang2010    时间: 2015-09-17 20:44
很正常,没玩过
作者: akazhuk    时间: 2015-09-18 08:15
来人!求助啊!!
作者: woxizishen    时间: 2015-09-18 13:45
本帖最后由 woxizishen 于 2015-09-18 13:45 编辑

太简单了转发问题,不过你发邮件竟然把外网ip权限单独开通,我也是佩服你啊。在外部发有限都是通过SASL来验证的。DOVECOT一般也会结合SASL来验证。你前面只开通SMTP转发权限,并没有开通登陆POP3服务器收取邮件权限。SMTP和POP3是2个服务器,不要搞混淆。
作者: akazhuk    时间: 2015-09-18 13:54
回复 5# woxizishen


    不好意思,我是新手。我也是按照一些配置文章来弄的。。
作者: akazhuk    时间: 2015-09-18 14:01
回复 5# woxizishen


    我本来也是想经过服务器ip来发信和收信,前段时间配置过一个postfix+pop3+sasl 的邮件服务器可以!但用户都是要从ubuntu里添加用户,所以想弄个类似mysql那样的!就找到了postfixadmin!但配置下来发现挺多问题,也看了很久的maillog,解决到这里就无解了
作者: hmglly    时间: 2015-09-26 20:28
一个一个的解决,先解决sasl的支持没有添加的问题。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2