====== 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 ===
* SDF's POP3 server address is **mx.sdf.org** port 110
* SDF's IMAP server address is **mx.sdf.org** port 143 (993 for TLS/SSL)
=== Sending Email ===
* SDF's SMTP server is **mx.sdf.org**
* SDF's SMTP server listens on **port 25** as well as **ports 23, 53, 587 and 8080**. Some ISPs throttle or block activity on port 25.
* Set your SMTP AUTH secret with **mkvpm set //secret//** at the shell. The auth secret is not your SDF password; plese do not set //secret// to your SDF password.
* Your SMTP AUTH username is your **domain name@sdf.org** (ex. alan8r.sdf.org@sdf.org)
* SMTP via **STARTTLS** is recommended. Some email clients may refer to STARTTLS as TLS. TLS/SSL is not STARTTLS.
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:
* **SMTPmail** for sending email,
* **Rmail** for reading email,
* **Gnus**, a news reader that can also be used for reading email.
(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 ""
user-mail-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/’) 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://:@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 @sdf.org password
machine mx.sdf.org port 143 login 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 =====
* Open Outlook Express
* Tool -> Accounts
* Click Add -> Mail to start the Account Wizard
* Display name: Your Name
* E-Mail address: Your email address (ex. bill@microsoft.com)
* Select POP3
* Incoming Mail server: mx.sdf.org
* Outgoing mail (SMTP) server: mx.sdf.org
* Account name: Your email address (full email address for VPM and VHOST members, just username for MetaARPA)
* The wizard will now save, double click on the new configuration under the Mail tab to continue
* Select the Advanced tab
* Outgoing mail (SMTP) change from 25 to 587 (not completely necessary, but recommended)
* Select the Servers tab
* Check the box 'My server requires authentication, then click Settings
* Select Log on using:
* Account name: YOUR DOMAIN NAME (ex. alan8r.sdf.org, traumhost.com)
* Password: What you set with the **mkvpm set //secret//** command at the shell
* Click ‘Apply’
===== Mail.App under Macos X =====
* Open Mail.app
* In the Mail menu, select Preferences
* Click the Accounts tab
* Select the account on the left you wish to edit
* On the Account Information tab, find “Outgoing Mail Server (SMTP):”
* Click the arrows for the dropdown menu, and select Edit Server List...
* Make sure the server you wish to use is selected in the list, and click on the Advanced tab
* In the Authentication dropdown, select “MD5 Challenge-Response”
* Type in your SDF username in User Name field
* Type in your password in Password field
* Click ok, and close the Preferences window.
===== Mozilla Thunderbird =====
* Tools -> Account Settings -> Add Mail Account
* Your name: Your Name (ex. Bill Gates)
* Email address: your email address (ex. amrowsell@sdf.org)
* Password: your normal shell login password
* Click Continue and then click Manual Config
* Incoming IMAP
* Incoming Server Hostname: mx.sdf.org
* Security: STARTTLS
* Port: 143
* Authentication: Normal password
* Outgoing SMTP (only works if you are MetaARPA or pay for dialup)
* Outgoing Server Hostname: mx.sdf.org
* Port 587
* Security: STARTTLS
* Authentication: Encrypted password
* Username: Your domain name, @sdf.org ... for example, amrowsell.sdf.org@sdf.org
* Click Re-Test and Create Account
* You will be prompted for your SMTP password the first time you go to send mail. This is the password generated by mkvpm on the command line.
===== 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: =====
* first, verify that //postfix(1)// knows about //libsaslc// :
% sudo postconf -A
saslc
* create (as superuser) the following postfix config files:
///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
* hash ///etc/postfix/{generic,sasl_passwd}, then check and reload configs//:
% 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
* test to verify everything is working correctly:
% 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=, \
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.//
- In **Settings**, scroll to **Passwords & Accounts**. Tap **Add Account**
- On the next screen, select **Other**, then **Add Mail Account**
- Fill in the details (examples below), then tap **Next**
- **Name** ''Joe Bleaux''
- **Email** ''jbleaux@sdf.org''
- **Password** //your SDF password//
- **Description** ''SDF Mail for Joe Bleaux'' (or whatever floats your boat)
- You will need to fill in pretty much //all// the details by hand.
- For **Incoming Mail Server** section:
- **Hostname** ''mx.sdf.org''
- **Username** ''jbleaux''
- **Password** //your SDF password//
- For **Outgoing Mail Server** (MetaARPA Users Only!)
- **Hostname** “mx.sdf.org”
- **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.//
- **Password** //your SDF password//
- Click **Save** on the next screen.
- Select the account from the **Passwords & Accounts** screen. On the next screen, Tap **Account** (which will show your username (''jbleaux@sdf.org'')
- Scroll down and click **Advanced**.
- Under **Incoming Settings**, tap to enable **Use SSL**, and for **Server Port**, put ''993''.
- 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.
- Tap **Revision_Control_System|RCS]])