Operations grimoire/Legacy archive/Mail server notes

From Nasqueron Agora

📕📁📜 Old technical information :: content warning

⌛ This Nasqueron Operations Grimoire page hasn't been updated for a long time.

☣ As our infrastructure evolves quickly, there is a good chance this information is outdated or now inaccurate. Be careful and consider update it.

➡️ To assert the information is still up-to-date or not, you can check the history of the relevant role in our Operations repository.

IMAP and POP servers

courier-authlib

To use courier-authlib against vpopmail MySQL authentication:

/usr/local/etc/authlib/authmysqlrc
MYSQL_SERVER            localhost
MYSQL_USERNAME          ...
MYSQL_PASSWORD          ...
MYSQL_PORT              0
MYSQL_OPT               0
MYSQL_DATABASE          vpopmail
MYSQL_USER_TABLE        vpopmail
MYSQL_CRYPT_PWFIELD pw_passwd
MYSQL_UID_FIELD     1189
MYSQL_GID_FIELD     1189
MYSQL_LOGIN_FIELD   CONCAT(pw_name, '@', pw_domain)
MYSQL_HOME_FIELD    pw_dir
MYSQL_NAME_FIELD    pw_gecos

Utilities

qmail-autoresponder

If invoked from vpopmail instead vmailmgr, it doesn't contain From: header.

/usr/ports/mail/qmail-autoresponder/files/patch-main.c — Autoresponder used only error-way (e.g. catchall)
diff --git main.c main.c
index ba1a0b9..5de20cc 100644
--- main.c
+++ main.c
@@ -475,6 +475,9 @@ int main(int argc, char* argv[])
     out = &bufout;
   }

+  //TODO: create a mailer-daemon@domain.tld finder
+  //For example: read /var/qmail/control/me, and prepend by mailer-daemon@
+  obuf_put3s(out, "From: Mail Delivery Subsystem <mailer-daemon@", "grip.espace-win.org", ">\n");
   obuf_put3s(out, "To: <", sender, ">\n");
   if(opt_subject_prefix)
     obuf_put4s(out, "Subject: ", opt_subject_prefix, subject.s, "\n");
/usr/ports/mail/qmail-autoresponder/files/patch-main.c — Target account used as From
(patch to write)

Installation tips:

To grant minimal privileges to a qmailresponder MySQL account
GRANT SELECT,DELETE,INSERT ON vpopmail.response TO 'qmailresponder'@'localhost' IDENTIFIED BY '...';
GRANT SELECT ON vpopmail.autoresponder TO 'qmailresponder'@'localhost';
Add to my.cnf
[qmail-autoresponder]
# Public account to see the currently set responders.
user=qmailresponder
password=...
database=vpopmail