Table of Contents

POP3, IMAP and SMTP AUTH for Popular Mail Clients

Introduction

SDF uses SMTP Authentication to allow remote network clients such as desktop, tablet and phone mail applications to use its SMTP server for the purpose of sending (relaying) e-mail messages. SDF users with the VPM, VHOST and MetaARPA memberships have access to the SMTP server.

Quick Starter Notes

Receiving Email

Sending Email

Please note: the SMTP AUTH secret is set on the command line via mkvpm. The command history of the shell may keep the secret in the history file.

The Mail Client Configurations

Please note that BlueMail on Android does not support the correct password encryption algorithm, and therefore you cannot set up your SDF email account under BlueMail. The devs have been notified of this bug; if they do fix it, the instructions here will be updated.

Emacs (SMTPmail, Rmail, Gnus)

The GNU Emacs editor includes several subsystems for handling email, including:

(Normally, you would choose to read email in Emacs with either Rmail or Gnus and would only configure the email reader of your choice.)

Configuration for these subsystems varies depending on whether you are running Emacs locally on the SDF system that hosts your email spool or remotely on another system like your home PC.

In either case, configuration mainly takes the form of Emacs Lisp expressions added to the startup file (usually ‘~/.emacs’) on the system where you will run Emacs. Optionally, the file ‘~/.gnus’ can be used for Gnus configuration to reduce clutter in your main startup file.

Common Configuration

Set the following variables regardless of which email subsystems you will you and whether you will be accessing email locally or remotely.

(setq
   user-full-name "<your full name>"
   user-mail-address "<your email address>")

Local Configuration

WARNING: If you use either Rmail or Gnus to read email locally on your SDF email host system, all messages in your email spool at the time you start Rmail or Gnus will be removed from the spool and transferred to the email reader's inbox. Make a backup of your email spool (‘/sdf/mail/<username>’) beforehand unless you are committed to handling your email with Rmail or Gnus.

;; For SMTPmail ...
 
(setq send-mail-function 'sendmail-send-it)
 
;; For Rmail, no configuration is necessary for local access.
 
;; For Gnus ...
 
(setq gnus-secondary-select-methods '((nnml "")))

Remote Configuration

;; For SMTPmail ...
 
(setq
   send-mail-function 'smtpmail-send-it
   smtpmail-default-smtp-server "mx.sdf.org"
   smtpmail-local-domain "sdf.org"
   smtpmail-smtp-service 587
   smtpmail-stream-type 'starttls)
(load-library "smtpmail")
 
;; For Rmail ...
 
(setq
   rmail-primary-inbox-list '("imaps://<username>:<password>@mx.sdf.org")
   rmail-preserve-inbox t)     ; (If you want to keep your mail in your SDF IMAP inbox.)
 
;; For Gnus ...
 
(add-to-list 'gnus-secondary-select-methods
  '(nnimap "mx.sdf.org"
    (nnimap-address "mx.sdf.org")
    (nnimap-server-port 143)
    (nnimap-stream starttls)))

Additionally, for remote access place the following lines in the file ‘~/.authinfo’ (or ‘~/.authinfo.gpg’ for encryption):

machine mx.sdf.org port 587 login <mkvpm domain>@sdf.org password <mkvpm secret>
machine mx.sdf.org port 143 login <username> password <password>

Email Commands

After you have completed the configuration, start or restart Emacs and use the following commands to access your email:

description command
SMTPmail: C-x m
Rmail: M-x rmail
Gnus: M-x gnus

K-9 Mail for Android

To retrieve mail via IMAP
imap server mx.sdf.org
Security SSL/TLS
Port 993
Username sdf user name (eg, alan8r)
Authentication Normal password
Password password associated with sdf user above
To send mail, set up SMTP with
SMTP server mx.sdf.org
Security STARTTLS
Port 587
Username Your domain name*
Authentication Encrypted password
Password string set via “mkvpm set YOUR_PASSWORD_HERE”

* If you are a Meta-ARPA member and not a VHOST member, this is whatever web domain you've chosen (frequently username.sdf.org@sdf.org). If you're a VHOST member, it's your VHOST domain.

Outlook Express under Windows

Mail.App under Macos X

Mozilla Thunderbird

Heirloom Mailx under Linux/BSD

Add the following to ~homeuser/.nailrc to set the default SMTP relay:

# Remote SDF SMTP relaying (use SDF 'mkvpm' tool to set auth user:pw):
set ssl-verify="ignore"
set smtp-use-starttls
set smtp=mx.sdf.org:587
set smtp-auth=cram-md5
set smtp-auth-user="sdf_user.sdf.org@sdf.org"
set smtp-auth-password="my_password"

The SDF CA is self-signed but can still be used if desired. Retrieve and store somewhere (ie. under ~/.openssl/) as pem file, then edit ~homeuser/.nailrc like so:

set ssl-ca-file="/home/home_user/.openssl/sdf_self-signed_ca.pem"
set ssl-verify="warn"  # will issue "self-signed CA" warning
...

Account-specific smtp settings are possible; see the Heirloom Mailx documentation.

Postfix MTA using libsaslc(3) on NetBSD 6.x:

% sudo postconf -A
saslc

/etc/postfix/main.cf

myhostname = mypc.my.box
mydomain = my.box
mynetworks_style = host
alias_maps = hash:/etc/mail/aliases
# SMTP client settings:
relayhost = [mx.sdf.org]:submission
smtp_generic_maps = hash:/etc/postfix/generic
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noplaintext, noanonymous
smtp_sasl_tls_security_options = noanonymous
## explicitly allow/prohibit certain SSL protocols:
#smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, TLSv1
## use of "may" option allows fallback to cleartext
#smtp_tls_security_level = may
smtp_tls_security_level = encrypt
smtp_sasl_type = saslc

/etc/postfix/generic

# applies to msgs to be delivered off-site
me@mypc.my.box  sdf_login@sdf.org

/etc/postfix/sasl_passwd (for security set ownership to root:wheel, permissions to 600)

[mx.sdf.org]:submission  sdf_login.sdf.org:smtp_passwd
% cd /etc/postfix/
% sudo postmap generic sasl_passwd  # creates generic.db & sasl_passwd.db
% sudo postfix check                # no output unless errors
% sudo /etc/rc.d/postfix reload
% mailx sdf_login@sdf.org
  Subject: test
  123
  .
  EOT

% sudo tail -n10 /var/log/maillog | grep smtp
  Apr 27 08:53:42 mypc postfix/smtp[13387]: A61631F1FDC: to=<sdf_login@sdf.org>, \
  relay=mx.sdf.org[192.94.73.24]:587, delay=3.9, delays=0.02/0/3.7/0.11, dsn=2.0.0, status=sent \
  (250 2.0.0 s3RFrfvZ010436 Message accepted for delivery)

You should now be set up to use SDF's SMTP server. Enjoy!

iPhone Mail Application

This tutorial was written on iOS version 13.3. The exact prompts on other versions may vary.

  1. In Settings, scroll to Passwords & Accounts. Tap Add Account
  2. On the next screen, select Other, then Add Mail Account
  3. Fill in the details (examples below), then tap Next
    1. Name Joe Bleaux
    2. Email jbleaux@sdf.org
    3. Password your SDF password
    4. Description SDF Mail for Joe Bleaux (or whatever floats your boat)
  4. You will need to fill in pretty much all the details by hand.
    1. For Incoming Mail Server section:
      1. Hostname mx.sdf.org
      2. Username jbleaux
      3. Password your SDF password
    2. For Outgoing Mail Server (MetaARPA Users Only!)
      1. Hostname “mx.sdf.org”
      2. Username jbleaux.sdf.org@sdf.org This will be the URL you have set up if you have a custom one. If not, then model it after this example.
      3. Password your SDF password
  5. Click Save on the next screen.
  6. Select the account from the Passwords & Accounts screen. On the next screen, Tap Account (which will show your username (jbleaux@sdf.org)
  7. Scroll down and click Advanced.
  8. Under Incoming Settings, tap to enable Use SSL, and for Server Port, put 993.
  9. Tap SMTP (Under Outgoing Mail Server), to view outgoing mail options, then tap the Primary Server (should be mx.sdf.org. Change Authentication to MD5 Challenge-Response. Click Done at the top.
  10. Tap <Account at the top to go back, then tap Done.

You should be sending and receiving your SDF mail on your iPhone!


$Id: smtpauth.html,v 1.20 2020/01/19 02:03:26 mrguilt Exp $ POP3, IMAP and SMTP AUTH for Popular Mail Clients - traditional link (using RCS)