我在Ubuntu 12.04上设置了Postfix Courier Roundcube,但是当我尝试使用Roundcube发送电子邮件时,收到以下错误:
/var/log/mail.log:
- Dec 30 20:54:35 server postfix/smtpd[31465]: connect from localhost[127.0.0.1]
- Dec 30 20:54:35 server postfix/smtpd[31465]: Anonymous TLS connection established from localhost[127.0.0.1]: TLSv1.1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)
- Dec 30 20:54:35 server postfix/smtpd[31465]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 554 5.7.1 <localhost[127.0.0.1]>: Client host rejected: Access denied; from=<sender@mydomain.net> to=<receiver@gmail.com> proto=ESMTP helo=<mail.mydomain.net>
- Dec 30 20:54:35 server postfix/smtpd[31465]: disconnect from localhost[127.0.0.1]
根据我的设置,不确定这是怎么回事:
/etc/postfix/main.cf:
- # Debian specific: Specifying a file name will cause the first
- # line of that file to be used as the name. The Debian default
- # is /etc/mailname.
- #myorigin = /etc/mailname
- smtpd_banner = $myhostname ESMTP $mail_name
- biff = no
- # appending .domain is the MUA's job.
- append_dot_mydomain = no
- # Uncomment the next line to generate "delayed mail" warnings
- #delay_warning_time = 4h
- readme_directory = no
- # TLS parameters
- smtp_tls_security_level = may
- smtpd_tls_security_level = may
- smtp_tls_note_starttls_offer = yes
- smtpd_tls_loglevel = 1
- smtpd_tls_received_header = yes
- smtpd_tls_session_cache_timeout = 3600s
- tls_random_source = dev:/dev/urandom
- smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
- smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
- # smtpd_use_tls=yes
- # smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
- # smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
- smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
- #SASL
- smtpd_sasl_auth_enable = yes
- broken_sasl_auth_clients = no
- smtpd_sasl_security_options = noanonymous
- smtpd_sasl_local_domain =
- # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
- # information on enabling SSL in the smtp client.
- myhostname = server.mydomain.net
- alias_maps = hash:/etc/aliases
- alias_database = hash:/etc/aliases
- myorigin = mydomain.net
- mydestination = mail.mydomain.net,mydomain.net,localhost.mydomain.net,localhost
- #mydestination =
- relayhost =
- mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
- mailBox_command = procmail -a "$EXTENSION"
- mailBox_size_limit = 0
- recipient_delimiter = +
- inet_interfaces = all
- mynetworks_style = host
- masquerade_domains = mail.mydomain.net mydomain.net !sub.dyndomain.com
- masquerade_exceptions = root
- local_recipient_maps =
- mydestination =
- delay_warning_time = 4h
- unknown_local_recipient_reject_code = 450
- maximal_queue_lifetime = 7d
- minimal_backoff_time = 1000s
- maximal_backoff_time = 8000s
- smtp_helo_timeout = 60s
- smtpd_recipient_limit = 16
- smtpd_soft_error_limit = 3
- smtpd_hard_error_limit = 12
- smtpd_helo_restrictions = permit_mynetworks,warn_if_reject reject_non_fqdn_hostname,reject_invalid_hostname,permit
- smtpd_sender_restrictions = permit_sasl_authenticated,permit_mynetworks,warn_if_reject reject_non_fqdn_sender,reject_unknown_sender_domain,reject_unauth_pipelining,permit
- smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org,reject_rbl_client blackholes.easynet.nl
- smtpd_recipient_restrictions = reject_unauth_pipelining,permit_sasl_authenticated,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_destination,check_policy_service inet:127.0.0.1:10023,permit
- smtpd_data_restrictions = reject_unauth_pipelining
- smtpd_helo_required = yes
- smtpd_delay_reject = yes
- disable_vrfy_command = yes
- alias_maps = hash:/etc/postfix/aliases
- alias_database = hash:/etc/postfix/aliases
- virtual_mailBox_base = /var/spool/mail/virtual
- virtual_mailBox_maps = MysqL:/etc/postfix/MysqL_mailBox.cf
- virtual_alias_maps = MysqL:/etc/postfix/MysqL_alias.cf
- virtual_mailBox_domains = MysqL:/etc/postfix/MysqL_domains.cf
- virtual_uid_maps = static:5000
- virtual_gid_maps = static:5000
- content_filter = amavis:[127.0.0.1]:10024
/etc/postfix/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 - - - - smtpd
- #smtp inet n - - - 1 postscreen
- #smtpd pass - - - - - smtpd
- #dnsblog unix - - - - 0 dnsblog
- #tlsproxy unix - - - - 0 tlsproxy
- submission inet n - n - - smtpd
- -o smtpd_sasl_auth_enable=yes
- -o smtpd_tls_auth_only=yes
- -o smtpd_client_restrictions=permit_sasl_authenticated,reject
- -o smtpd_sasl_security_options=noanonymous,noplaintext
- -o smtpd_sasl_tls_security_options=noanonymous
- # -o syslog_name=postfix/submission
- # -o smtpd_tls_security_level=encrypt
- # -o smtpd_sasl_auth_enable=yes
- # -o smtpd_client_restrictions=permit_sasl_authenticated,reject
- # -o milter_macro_daemon_name=ORIGINATING
- smtps inet n - - - - smtpd
- -o smtpd_tls_wrappermode=yes
- -o smtpd_sasl_auth_enable=yes
- -o smtpd_tls_auth_only=yes
- -o smtpd_client_restrictions=permit_sasl_authenticated,noplaintext
- -o smtpd_sasl_tls_security_options=noanonymous
- # -o syslog_name=postfix/smtps
- # -o smtpd_tls_wrappermode=yes
- # -o smtpd_sasl_auth_enable=yes
- # -o smtpd_client_restrictions=permit_sasl_authenticated,reject
- # -o milter_macro_daemon_name=ORIGINATING
- #628 inet n - - - - qmqpd
- pickup fifo n - - 60 1 pickup
- -o content_filter=
- -o receive_override_options=no_header_body_checks
- cleanup unix n - - - 0 cleanup
- qmgr fifo n - n 300 1 qmgr
- #qmgr fifo n - n 300 1 oqmgr
- tlsmgr unix - - - 1000? 1 tlsmgr
- rewrite unix - - - - - trivial-rewrite
- bounce unix - - - - 0 bounce
- defer unix - - - - 0 bounce
- trace unix - - - - 0 bounce
- verify unix - - - - 1 verify
- flush unix n - - 1000? 0 flush
- proxymap unix - - n - - proxymap
- proxywrite unix - - n - 1 proxymap
- smtp unix - - - - - smtp
- relay unix - - - - - smtp
- # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
- showq unix n - - - - showq
- error unix - - - - - error
- retry unix - - - - - error
- discard unix - - - - - discard
- local unix - n n - - local
- virtual unix - n n - - virtual
- lmtp unix - - - - - lmtp
- anvil unix - - - - 1 anvil
- scache unix - - - - 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/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=/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}
- #
- # ====================================================================
- # Old example of delivery via Cyrus.
- #
- #old-cyrus unix - n n - - pipe
- # flags=R user=cyrus argv=/cyrus/bin/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/lib/bsmtp/bsmtp -t$nexthop -f$sender $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}
- amavis unix - - - - 2 smtp
- -o smtp_data_done_timeout=1200
- -o smtp_send_xforward_command=yes
- -o disable_dns_lookups=yes
- -o max_use=20
- 127.0.0.1:10025 inet n - - - - smtpd
- -o content_filter=
- -o local_recipient_maps=
- -o relay_recipient_maps=
- -o smtpd_restriction_classes=
- -o smtpd_delay_reject=no
- -o smtpd_client_restrictions=permit_mynetworks,reject
- -o smtpd_helo_restrictions= -o smtpd_sender_restrictions=
- -o smtpd_recipient_restrictions=permit_mynetworks,reject
- -o smtpd_data_restrictions=reject_unauth_pipelining
- -o smtpd_end_of_data_restrictions=
- -o mynetworks=127.0.0.0/8
- -o smtpd_error_sleep_time=0
- -o smtpd_soft_error_limit=1001
- -o smtpd_hard_error_limit=1000
- -o smtpd_client_connection_count_limit=0
- -o smtpd_client_connection_rate_limit=0
- -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
/etc/roundcube/main.inc.PHP的相关部分
- // ----------------------------------
- // SMTP
- // ----------------------------------
- // SMTP server host (for sending mails).
- // To use SSL/TLS connection,enter hostname with prefix ssl:// or tls://
- // If left blank,the PHP mail() function is used
- // Supported replacement variables:
- // %h - user's IMAP hostname
- // %n - http hostname ($_SERVER['SERVER_NAME'])
- // %d - domain (http hostname without the first part)
- // %z - IMAP domain (IMAP hostname without the first part)
- // For example %n = mail.domain.tld,%d = domain.tld
- $rcmail_config['smtp_server'] = 'ssl://127.0.0.1';
- // SMTP port (default is 25; 465 for SSL)
- $rcmail_config['smtp_port'] = 465;
- // SMTP username (if required) if you use %u as the username Roundcube
- // will use the current username for login
- $rcmail_config['smtp_user'] = '';
- // SMTP password (if required) if you use %p as the password Roundcube
- // will use the current user's password for login
- $rcmail_config['smtp_pass'] = '';
- // SMTP AUTH type (DIGEST-MD5,CRAM-MD5,LOGIN,PLAIN or empty to use
- // best server supported one)
- $rcmail_config['smtp_auth_type'] = '';
- // Optional SMTP authentication identifier to be used as authorization proxy
- $rcmail_config['smtp_auth_cid'] = null;
- // Optional SMTP authentication password to be used for smtp_auth_cid
- $rcmail_config['smtp_auth_pw'] = null;
- // SMTP HELO host
- // Hostname to give to the remote server for SMTP 'HELO' or 'EHLO' messages
- // Leave this blank and you will get the server variable 'server_name' or
- // localhost if that isn't defined.
- $rcmail_config['smtp_helo_host'] = 'mail.mydomain.net';
- // SMTP connection timeout,in seconds. Default: 0 (no limit)
- $rcmail_config['smtp_timeout'] = 0;
有任何想法吗?我觉得我在这里走到了尽头.
解决方法
您定义了smtpd_sasl_security_options = noanonymous(这也是默认值).
在你的圆形立方体配置线
在你的圆形立方体配置线
- $rcmail_config['smtp_server'] = 'ssl://127.0.0.1';
定义使用ssl.
对于匿名ssl连接被拒绝,您必须提供连接的用户名和密码.
但你没有定义: