telnet auth step in Troubleshooting Email guide failing
I am working through https://www.linode.com/docs/email/postfix/troubleshooting-problems-with-postfix-dovecot-and-mysql/#virtual-domains-and-users
Step 18: See if you can check your email with IMAP or POP3; you can use a mail client or Telnet.
I am attempting to log in with telnet but getting a AUTH error, and can't figure out why.
Here is the Telnet dialogue:
root@adonax:/var/log# telnet adonax.com 110
Trying 2600:3c01::f03c:92ff:fe93:5fa0...
Connected to adonax.com.
Escape character is '^]'.
+OK Dovecot (Ubuntu) ready.
USER phil
+OK
PASS fakepassword
-ERR [AUTH] Authentication failed.
The password as set in /etc/dovecot/users
root@adonax:/etc/dovecot# cat users
phil@adonax.com:{Plain}fakepassword
Here is the mail.log listing of the attempt:
Dec 5 11:10:05 adonax dovecot: pop3-login: Disconnected (auth failed, 1 attempts in 76 secs): user=<phil>, method=PLAIN, rip=2600:3c01::f03c:92ff:fe93:5fa0, lip=2600:3c01::f03c:92ff:fe93:5fa0, secured, session=<7F/DqPmYPt0mADwBAAAAAPA8kv/+k1+g>
I found Step 14 of the guide to confusing and ambiguous. Could it be enhanced with an example? I've tried 3 different forms of the "mail_location" line and none work.
A literal copy:
mail_location = maildir:~ #update mail_location
A version without the tilde:
mail_location = maildir:/var/mail/vhosts/%d/%n/
A version with the tilde:
mail_location = maildir:~/var/mail/vhosts/%d/%n/
Here is the rest of this section (/etc/dovecot/conf.d/10-mail.conf):
passdb {
driver = passwd-file
args = username_format=%u /etc/dovecot/users
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
The file structure for receiving mail is the following:
/var/mail/vhosts/adonax.com/phil/
Within /phil, there are multiple files in a subdirectory /new, one of which corresponds to a test email sent from mail.aol.
As far as I can tell, my settings in /etc/postfix/main.cf match correctly (from Step 7):
mydestination = localhost
# Virtual domains
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_mailbox_domains = adonax.com, adonax, adonax.adonax.com, localhost.adonax.com
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/virtual_users_list
And, /etc/postfix/virtual_users_list
root@adonax:/var/log# cat /etc/postfix/virtual_users_list
phil@adonax.com adonax.com/phil/
In case this matters, the mail.log verifies that I can send email from an external site to phil@adonax.com. For example, I sent an email to "phil@adonax.com" from mail.aol, and the mail.log shows the following (passing the test in Step 13):
Dec 5 10:46:22 adonax postfix/virtual[7402]: 1D4D340240: to=<phil@adonax.com>, relay=virtual, delay=0.15, delays=0.14/0.01/0/0, dsn=2.0.0, status=sent (delivered to maildir)
I could very much use some help as to what check or try next!
One last note: I was previously able to use the mail utility to fetch test emails sent to my ssh login identity. This now gives an error when I try to use it to log in:
fgphil@adonax:/etc/dovecot$ mail
Cannot open mailbox /var/mail/fgphil: Permission denied
No mail for fgphil
I am assuming this is due to changing the 10-auth.conf from !include auth-system.conf.ext
to !include auth-passwdfile.conf.ext
in Step 15.
Clip from 10-auth.conf shown here:
#!include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
!include auth-passwdfile.conf.ext
4 Replies
Some progress made.
When logging in via telnet, I should have used the following:
USER phil@adonax.com
instead of
USER phil
This allowed me into the mail program.
How did I find this out? There is a guide posted by Dovecot for debugging authentication issues here
https://doc.dovecot.org/admin_manual/debugging/debugging_authentication/
In the first paragraph, they recommend making the logging more verbose but don't specify WHERE to make the changes. The edits to logging should happen in /etc/dovecot/conf.d/10-logging.conf
If using the Linode guide: "Troubleshooting Problems with PostFix, Dovecot, and MySQL", the log files are in the file /var/log/mail.log
.
Now on to the next step: to figure out why none of the stored emails in /var/mail/vhosts/adonax.com/phil/new are being found.
More progress. Am now able to read the emails using Telnet.
In Step 14 of "Virtual Domains and Users" we are given the line
mail_location = maildir:~ #update mail_location
Given the earlier instructions at the start of the section (bullet point 4), this line would be much more helpful if it were instead:
mail_location = maildir:/var/mail/vhosts/example.com/user/
In trying to interpret this instruction, I mistakenly left the "~" in when entering the address, and spent a great deal of time wondering why emails were not being located. As I was running the tests from root, I somehow ended up with the directory structure /root/var/mail/vhosts/...
and of course no email there, as it was being correctly routed to /var/...
not ~/var/...
.
@philfrei It sounds like you've figured things out! If not, let the Community know, and we can see if we are able to help.
In regards to your clarity request, I have passed this information along to our Documentation team. For future reference, you are empowered to report or edit any issues you may find on Git Hub. There is a link at the top of every guide under the title. It will look like this:
Contribute on GitHub Report an Issue | View File | Edit File
The links will take you to directly to Git pages for the guide you are looking at!