Here are a few things you may want to look at:
- If you have your "Spam Sensitivity" set to "Custom", and have a "Custom spam rejection level" set, then many emails may be rejected by qpsmtpd with no chance to get to the user's junkmail folder. Spam is not rejected by default.
- If you have the "check_earlytalker" plugin turned on then qpsmtpd will reject many connections outright for mis-handling SMTP and trying to start delivering a message before your server says "OK". This plugin is "on" by default.
- If you have the "check_basicheaders" plugin turned on then qpsmtpd will reject any email from a server that does not include To:, From:, Date:, and Subject:. This plugin is "on" by default.
- qpsmtpd is intentionally designed to reject as much email as possible before your server accepts it, and usually does an excellent job, too!
The details of what is causing your problems are in /var/log/qpsmtpd/@* and /var/log/qpsmtpd/current. If you search these logfiles for all lines containing the word "DENY" (or "DENYSOFT", but this will be included if you search on "DENY"...) you should get some idea which plugin is rejecting your email...
If you don't find any info in your qpsmtpd logs about "DENY" then you may need to check (and change) the qpsmtpd "LogLevel" setting:
Check Current LogLevel (default was originally 8, then was reduced to 6 to reduce qpsmtpd log file size, then was increased back to 8 in order to include DENY & DENYSOFT messages):
# config getprop qpsmtpd LogLevelSet LogLevel high enough to include "DENY" messages:
# config setprop qpsmtpd LogLevel 8If you change the LogLevel you'll need to restart qpsmtpd:
# service qpsmtpd restartAnd you
may also need to restart the qpsmtpd multilog process:
# kill -sigterm cat /var/service/qpsmtpd/log/supervise/pid