User Tools

Site Tools


s-mailx

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
s-mailx [2022/02/07 22:12] – [Configuration] zilogs-mailx [2022/06/26 15:15] (current) – flagged Gmail config as no longer functional zilog
Line 9: Line 9:
   * all Heirloom-mailx features: POP3/IMAP/SMTP, folder hooks, macros, threading, etc.   * all Heirloom-mailx features: POP3/IMAP/SMTP, folder hooks, macros, threading, etc.
   * Maildir support   * Maildir support
 +  * readline (cmd history)
   * optional coloration   * optional coloration
   * enhanced spam filtering   * enhanced spam filtering
Line 21: Line 22:
  
 ==== Configuration ==== ==== Configuration ====
 +Several S-mailx options are pre-set via ''/usr/pkg/etc/s-nail.rc'', the system-wide S-mailx configuration file; worth checking out to see what the defaults are before making customizations.
 +
 The default user configuration file for S-mailx is ''~/.mailrc'' , unfortunately also used by the native NetBSD mail(1) and Heirloom-mailx clients.  If you never plan to use the other clients then you can go ahead and put all your settings in ''~/.mailrc'' ; chances are the native NetBSD mail(1) will just ignore any settings it doesn't understand; Heirloom-mailx likely will complain more.  A somewhat better option which maintains settings separation is to create a minimal ''~/.mailrc'' and add the following to it: The default user configuration file for S-mailx is ''~/.mailrc'' , unfortunately also used by the native NetBSD mail(1) and Heirloom-mailx clients.  If you never plan to use the other clients then you can go ahead and put all your settings in ''~/.mailrc'' ; chances are the native NetBSD mail(1) will just ignore any settings it doesn't understand; Heirloom-mailx likely will complain more.  A somewhat better option which maintains settings separation is to create a minimal ''~/.mailrc'' and add the following to it:
  
Line 41: Line 44:
 </file> </file>
  
-Note that this technique is also used for the Heirloom mailx client via the NAIL_EXTRA_RC variable; having both ''NAIL_EXTRA_RC'' and ''mailx-extra-rc'' set in ''~sdfuser/.mailrc'' will likely produce ignore-able but annoying errors when S-mailx is run.+Note that this technique is also used for the Heirloom mailx client via the NAIL_EXTRA_RC variable; having both ''NAIL_EXTRA_RC'' and ''mailx-extra-rc'' set in ''~sdfuser/.mailrc'' will likely produce ignore-able but fairly annoying errors when S-mailx is run.
  
 <file config ~/.s-nailrc> <file config ~/.s-nailrc>
Line 115: Line 118:
         }         }
  
 +### note: due to 2022 Gmail policy change this no longer works ###
 # Typical Gmail IMAP/SMTP w/ SSL setup (enable IMAP on your acct first); # Typical Gmail IMAP/SMTP w/ SSL setup (enable IMAP on your acct first);
 # note use of "URL percent encoded" chars in some settings, i.e. '%40' = '@' : # note use of "URL percent encoded" chars in some settings, i.e. '%40' = '@' :
Line 136: Line 140:
 </file> </file>
  
 +===== S-mailx Usage =====
 +
 +Basic usage is essentially identical for all mailx-style clients and so won't be covered here; see the [[traditional_mail_1_mailx_1#getting_started|Documentation]] to get started.
 +
 +S-mailx has fairly decent interactive help.  Get a listing of all commands with ''list'', then use ''help <command>'' to see a short synopsis of the command.  Type ''set'' for list of current settings or ''showvar <setting/variable>'' for specific setting.  If one or more errors are reported the ''errors'' commands will provide the details.  S-mailx also has EMACS-style command line editting, i.e. **CTRL+P / CTRL+N** or **⬆ / ⬇** (Up/Down arrow keys) selects prior commands, **CTRL+W** deletes a word, etc.
 +
 +==== Remote accounts ====
 +
 +Remote or alternate SDF accounts are accessed via the ''account'' command -- can be abbreviated to ''ac'' Run without an arguement ''acc'' simply lists any configured accounts.  To switch to an account within a S-mailx session use ''ac <acct_name>'' ; to start S-mailx on a specific account from the shell use ''$ s-nail -A <acct_name> [-f <subfolder>]'' For example, if we have an alternate SDF account named ""sdfuser2"" which has a sub-folder called "Spam" we'd use
 +
 +<code>$ s-nail -A sdfuser2 -f +Spam</code>
 +
 +Note the "+" ; sub-folders //under// your main mail directory, i.e. //~/mail//, are accessed using ''fi +<subfolder>'' ; use user-configurable shortcuts to make this more convenience, i.e. setting ''shortcut sent +Sent'' allows switching to folder "+Sent" with ''fi sent''.
 +
 +If multiple folders are configured for an account they can usually be listed using the ''folders'' command; to switch folders use ''fi <folder>'' Pretty much all mailx-style clients also support the following shortcuts:
 +
 +^  shortcut  ^folder description^
 +|  %         | system Inbox     |
 +|  #         | previous folder  |
 +|  &         | account MBOX     |
 +
 +
 +To return to your default account -- the one associated with YOU -- within a S-mailx session use ''account null'' It's handy to create a command alias for this; see the ""comandalias home"" entry in the example configuration file.
 +
 +==== Colors and other hacks ====
 +
 +S-mailx can colorize your session experience depending on your terminal's capabilities.  The default SDF TERM value may not be ideal; if you aren't seeing colors try setting TERM to //linux//.
 +
 +Example:
 +<code file=~sdfuser/.s-nailrc>
 +# colors: prompt & msg info=teal, headers=green, errors=red:
 +set colour-pager
 +if terminal && "$features" =% ,+colour,
 +        colour iso view-msginfo fg=cyan
 +        colour iso view-header ft=bold,fg=green (from|date|subject) # regex
 +        colour iso view-header fg=green
 +        colour iso mle-prompt fg=cyan
 +        colour iso mle-error fg=red
 +endif
 +</code>
 +
 +Note european spelling -- use //colour// See //s-nail(1)// for other possibilities.
 +
 +Hacking the prompt: by default the S-mailx prompt is just a **//?//**.  By making use of S-mailx internal variables the prompt can be made more informative.  For example, to display the system path to the active folder:
 +
 +<code file=~sdfuser/.s-nailrc>
 +set prompt='[\$mailbox-resolved] > '
 +</code>
 +
 +For a local folder, say //~sdfuser/mail/Sent// this might display as
 +
 +<code> [/sdf/mail/maildir/s/sdfuser/Sent] > </code>
 +
 +Not bad.  However, remote IMAP accounts can look a bit uglier: <code> [imaps://gmail.user%40gmail.com@imap.gmail.com/[Gmail]/Sent Mail] > </code>
 +
 +If you are accessing such accounts you're already aware of their type; no need to display the full path.  The following hack checks if variable //acount// is set (only set for remote accounts) and if so, uses a regex expression to filter the contents of the //mailbox-resolved// variable to just display the account and folder names:
 +
 +<code file=~sdfuser/.s-nailrc>
 +# customize prompt
 +define custom-prompt {
 +  if -z $'\$account'
 +    set prompt='[\$mailbox-resolved] > '
 +  else
 +    vput vexpr prompt regex "$mailbox-resolved" ([^/]+)$ '[\$account]:\$1 > '
 +  endif
 +  }
 +set folder-hook=custom-prompt
 +</code>
 +
 +Now when we switch to our account "gmail" we get something like the following:
 +
 +<code>
 +...
 +[gmail]:INBOX > fi sent
 +...
 +[gmail]:Sent Mail > 
 +</code>
 +
 +A bit nicer!  The //s-nail(1)// manpage has additional documentation on using ''vput'' and ''vexpr'' Much of S-mailx's functionality depends on the version in use AND whether //v15-compat// is set; S-mailx on another system may not appear to behave the same way.
s-mailx.1644271927.txt.gz · Last modified: 2022/02/07 22:12 by zilog