-1

Our server can not send email to yahoo only, dkim, spf working fine also ip clean from any blacklist. Another yahoo email are work best. Our server can send email to gmail, windows mail, yandex etc.

Postfix mail queue:

host mta5.am0.yahoodns.net[98.136.217.203] said: 421 4.7.0 [TSS09] All messages from 107.xx.57.xxx temporarily deferred due to user complaints - 4.16.56.1; see help.yahoo.com/kb/postmaster/SLN3326.html (in reply to MAIL FROM command)

delivery temporarily suspended: lost connection with mta5.am0.yahoodns.net[98.136.217.202] while sending RCPT TO


Postfix Mail Logs:

Mar 7 20:00:13 server-cloud752 postfix-yahoo/smtp[25003]: 104A165E7: host mta5.am0.yahoodns.net[66.196.118.33] said: 421 4.7.0 [TSS09] All messages from 107.175.57.166 temporarily deferred due to user complaints - 4.16.56.1; see help.yahoo.com/kb/postmaster/SLN3326.html (in reply to MAIL FROM command)

Mar 7 20:00:13 serverwp21 postfix-yahoo/smtp[25003]: 104A165E7: lost connection with mta5.am0.yahoodns.net[66.196.118.33] while sending RCPT TO


Postfix main.cf

#soft_bounce = no

# LOCAL PATHNAME INFORMATION

queue_directory = /var/spool/postfix

# The command_directory parameter specifies the location of all
# postXXX commands.
#
command_directory = /usr/sbin

daemon_directory = /usr/libexec/postfix

data_directory = /var/lib/postfix

mail_owner = postfix


#default_privs = nobody

# INTERNET HOST AND DOMAIN NAMES

#myhostname = host.domain.tld
#myhostname = virtual.domain.tld

#
#mydomain = domain.tld

# SENDING MAIL

#myorigin = $myhostname
#myorigin = $mydomain

# RECEIVING MAIL

#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = all

# Enable IPv4, and IPv6 if supported
inet_protocols = all

#
#proxy_interfaces =
#proxy_interfaces = 1.2.3.4

#
#
mydestination = $myhostname, localhost.$mydomain, localhost, serverwp21.jawanet.com
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#   mail.$mydomain, www.$mydomain, ftp.$mydomain

# REJECTING MAIL FOR UNKNOWN LOCAL USERS
#
# To turn off local recipient checking in the SMTP server, specify
# local_recipient_maps = (i.e. empty).
#
# local_recipient_maps setting if:
#
#
#
# - You redefine the local delivery agent in master.cf.
#
# - You redefine the "local_transport" setting in main.cf.
#
# - You use the "luser_relay", "mailbox_transport", or "fallback_transport"
#   feature of the Postfix local delivery agent (see local(8)).
#
# Details are described in the LOCAL_RECIPIENT_README file.
#
# The right-hand side of the lookup tables is conveniently ignored.
# In the left-hand side, specify a bare username, an @domain.tld
# wild-card, or specify a user@domain.tld address.
# 
#local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =

#
#
unknown_local_recipient_reject_code = 550

# TRUST AND RELAY CONTROL

# The mynetworks parameter specifies the list of "trusted" SMTP
# clients that have more privileges than "strangers".
#
#
#
# 
# 
#mynetworks_style = class
#mynetworks_style = subnet
#mynetworks_style = host

# (the value on the table right-hand side is not used).
#
#mynetworks = 168.100.189.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table

#
# 
# In addition to the above, the Postfix SMTP server by default accepts mail
# that Postfix is final destination for:
# - destinations that match $inet_interfaces or $proxy_interfaces,
# - destinations that match $mydestination
# - destinations that match $virtual_alias_domains,
# - destinations that match $virtual_mailbox_domains.
# These destinations do not need to be listed in $relay_domains.
# 
# Specify a list of hosts or domains, /file/name patterns or type:name
# lookup tables, separated by commas and/or whitespace.  Continue
# long lines by starting the next line with whitespace. A file name
# is replaced by its contents; a type:name table is matched when a
# (parent) domain appears as lookup key.
#
# NOTE: Postfix will not automatically forward mail for domains that
# list this system as their primary or backup MX host. See the
# permit_mx_backup restriction description in postconf(5).
#
#relay_domains = $mydestination

# INTERNET OR INTRANET   
#
#
# If you're connected via UUCP, see also the default_transport parameter.
#
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]

# REJECTING UNKNOWN RELAY USERS
#
#
# 
#relay_recipient_maps = hash:/etc/postfix/relay_recipients

# INPUT RATE CONTROL
#
#
# 
# Specify 0 to disable the feature. Valid delays are 0..10.
# 
#in_flow_delay = 1s

# ADDRESS REDIRECTION (VIRTUAL DOMAIN)
#
# The VIRTUAL_README document gives information about the many forms
# of domain hosting that Postfix supports.

# "USER HAS MOVED" BOUNCE MESSAGES
#
# See the discussion in the ADDRESS_REWRITING_README document.

# TRANSPORT MAP
#
# See the discussion in the ADDRESS_REWRITING_README document.

# ALIAS DATABASE
#
#
#
#
#alias_maps = dbm:/etc/aliases
alias_maps = hash:/etc/aliases
#alias_maps = hash:/etc/aliases, nis:mail.aliases
#alias_maps = netinfo:/aliases

#
#
#alias_database = dbm:/etc/aliases
#alias_database = dbm:/etc/mail/aliases
alias_database = hash:/etc/aliases
#alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases

# ADDRESS EXTENSIONS (e.g., user+foo)
#
#recipient_delimiter = +

# DELIVERY TO MAILBOX
#
# The home_mailbox parameter specifies the optional pathname of a
# mailbox file relative to a user's home directory. The default
# mailbox file is /var/spool/mail/user or /var/mail/user.  Specify
# "Maildir/" for qmail-style delivery (the / is required).
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/

# The mail_spool_directory parameter specifies the directory where
# UNIX-style mailboxes are kept. The default setting depends on the
# system type.
#
#mail_spool_directory = /var/mail
#mail_spool_directory = /var/spool/mail
#
#
#
#mailbox_command = /some/where/procmail
#mailbox_command = /some/where/procmail -a "$EXTENSION"

#
#
#
#

#
# Cyrus IMAP over LMTP. Specify ``lmtpunix      cmd="lmtpd"
# listen="/var/imap/socket/lmtp" prefork=0'' in cyrus.conf.
#mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

# If using the cyrus-imapd IMAP server deliver local mail to the IMAP
# server using LMTP (Local Mail Transport Protocol), this is prefered
# over the older cyrus deliver program by setting the
# mailbox_transport as below:
#
# mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
#
# The efficiency of LMTP delivery for cyrus-imapd can be enhanced via
# these settings.
#
# local_destination_recipient_limit = 300
# local_destination_concurrency_limit = 5
#
# Cyrus IMAP via command line. Uncomment the "cyrus...pipe" and
# subsequent line in master.cf.
#mailbox_transport = cyrus

#.
#
#fallback_transport = lmtp:unix:/var/lib/imap/socket/lmtp
#fallback_transport =
#
# luser_relay works only for the default Postfix local delivery agent.
#
#luser_relay = $user@other.host
#luser_relay = $local@other.host
#luser_relay = admin+$local

# JUNK MAIL CONTROLS
# 
# The controls listed here are only a very small subset. The file
# SMTPD_ACCESS_README provides an overview.

#
# For details, see "man header_checks".
#
#header_checks = regexp:/etc/postfix/header_checks

# FAST ETRN SERVICE
# 
# 
#fast_flush_domains = $relay_domains

# SHOW SOFTWARE VERSION OR NOT
#
#
#
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)

# PARALLEL DELIVERY TO THE SAME DESTINATION
#
# 
# Each message delivery transport has its XXX_destination_concurrency_limit
# parameter.  The default is $default_destination_concurrency_limit for
# most delivery transports. For the local delivery agent the default is 2.

#local_destination_concurrency_limit = 2
#default_destination_concurrency_limit = 20

# DEBUGGING CONTROL
#
# The debug_peer_level parameter specifies the increment in verbose
# logging level when an SMTP client or server host name or address
# matches a pattern in the debug_peer_list parameter.
#
debug_peer_level = 2

#
#debug_peer_list = 127.0.0.1
#debug_peer_list = some.domain

# The debugger_command specifies the external command that is executed
# when a Postfix daemon program is run with the -D option.
#
# Use "command .. & sleep 5" so that the debugger can attach before
# the process marches on. If you use an X-based debugger, be sure to
# set up your XAUTHORITY environment variable before starting Postfix.
#
debugger_command =
     PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
     ddd $daemon_directory/$process_name $process_id & sleep 5

# If you can't use X, use this to capture the call stack when a
# daemon crashes. The result is in a file in the configuration
# directory, and is named after the process name and the process ID.
#
# debugger_command =
#   PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
#   echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
#   >$config_directory/$process_name.$process_id.log & sleep 5
#
#
# debugger_command =
#   PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH; screen
#   -dmS $process_name gdb $daemon_directory/$process_name
#   $process_id & sleep 1

# INSTALL-TIME CONFIGURATION INFORMATION
#
# The following parameters are used when installing a new Postfix version.
# 
# 
sendmail_path = /usr/sbin/sendmail.postfix

# newaliases_path: The full pathname of the Postfix newaliases command.
# This is the Sendmail-compatible command to build alias databases.
#
newaliases_path = /usr/bin/newaliases.postfix

# mailq_path: The full pathname of the Postfix mailq command.  This
# is the Sendmail-compatible mail queue listing command.
# 
mailq_path = /usr/bin/mailq.postfix

#
setgid_group = postdrop

# html_directory: The location of the Postfix HTML documentation.
#
html_directory = no

# manpage_directory: The location of the Postfix on-line manual pages.
#
manpage_directory = /usr/share/man

# sample_directory: The location of the Postfix sample configuration files.
# This parameter is obsolete as of Postfix 2.1.
#
sample_directory = /usr/share/doc/postfix-2.10.1/samples

# readme_directory: The location of the Postfix README files.
#
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
transport_maps = hash:/etc/postfix/transport, regexp:/etc/postfix/transport.regexp
yahoo_initial_destination_concurrency = 1
yahoo_destination_concurrency_limit = 4
yahoo_destination_recipient_limit = 2
yahoo_destination_rate_delay = 1s
virtual_alias_maps = hash:/etc/postfix/virtual
sender_bcc_maps = hash:/etc/postfix/bcc
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
home_mailbox = Maildir/
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated permit_inet_interfaces check_policy_service unix:/var/spool/postfix/postgrey/socket permit_mx_backup
mailbox_size_limit = 0
sender_dependent_default_transport_maps = hash:/etc/postfix/dependent
smtp_use_tls = yes
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
sender_canonical_maps = hash:/etc/postfix/canonical
allow_untrusted_routing = yes
smtpd_tls_cert_file = /etc/sslku/ssl.cert
smtpd_tls_key_file = /etc/sslku/ssl.key
smtpd_tls_CAfile = /etc/sslku/ssl.ca
smtpd_use_tls = yes
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_tls_mandatory_ciphers = high

I tried a variety of postfix tutorials on google and contact yahoo support, see the problems here but to no avail.

Software Used

  • Virtualmin +webmin
  • Postfix + Dovecot Mailserver
  • Centos 7.3
  • Whmcs billing system

Please share any idea mate.

  • 1
    It appears to be listed on a few [rbl](http://multirbl.valli.org/lookup/) servers. Don't forget to sanitze your second example. It is also possible that folks on yahoo clicked the spam link. You may have to open a case with them or contact them somehow. – Aaron Mar 07 '17 at 13:40
  • I has been consult with spamhaus support my ip no problem. But this service http://www.uceprotect.net/en/index.php?m=3&s=4 block my ip, i assume they only searching for money with random ip or fake service, why? i ask about my server ip to uceprotect support, they recommend me to buy $21/month to unblock my ip from uceprotect database. – Hendra Setyawan Mar 07 '17 at 15:17
  • Uceprotect take a hard stance on temporary blocking. If your server is not sending UCE, then the block would clear after a few days to a week. – Aaron Mar 07 '17 at 15:29

1 Answers1

0

Per the logs you provide, Yahoo considered your IP to displaying 'unusual activity'.

The KnowledgeBase article they point you to in their response provides (a little bit) more information:

Using a shared IP address - Mail traffic from other domains could be negatively affecting your IP sending reputation. Contact your host provider to request using dedicated IP addresses to send your mail to resolve this problem.

Monitor your sender reputation - Even if you have a good reputation, users can vote your email as spam and affect your overall reputation. We review IPs submitted for delivery issues and, based on our review, we may modify your reputation in our systems if needed.

As mentioned by @Aaron, your IP is also present on some blacklists, so I would tend to suspect you will have a hard time trying to get them to reverse their decision. Unfortunately, other than contacting them and asking them to reverse their block, I am not sure there is a lot you can do.

However, if you did feel you were on the RBLs erroneously, you might be able to contact the RBL maintainers you are listed with and ask for them to review your inclusion on their blacklist.

Update:

I could only find the source IP on one single blacklist, of 95 checked: https://mxtoolbox.com/SuperTool.aspx?action=blacklist%3a107.175.57.166&run=toolpage

Aaron's list does show more entries, but nothing in the most commonly used RBLs.

Which I think would suggest the issue might be entirely summarised by the error message shown in the question deferred due to user complaints.

I think this means the best step to take is flag the issue to yahoo, and ask them what caused them to categorise the server/IP as showing 'unusual activity'.

iwaseatenbyagrue
  • 3,688
  • 15
  • 24
  • I used dedicated ip for each domain mate and main domain run on own dedicated server/ip, and i check ip not blacklisted. The problem only with yahoo. – Hendra Setyawan Mar 07 '17 at 14:45
  • I intentionally left his IP out of my link just in case he wanted to edit his post. He had sanitized the first occurance of his IP and left the second one. I saw his IP listed on 3 RBL's, but one of them is a generic block due to the shared IP as you mentioned. – Aaron Mar 07 '17 at 15:31
  • I am confused as to why this problem only with yahoo only. – Hendra Setyawan Mar 07 '17 at 15:46