@item :authentication
\e$B$3$l$O\e(B @code{password} \e$B$+%7%s%\%k\e(B @code{apop} \e$B$G!"$I$NG'>ZJ}<0$r;H$&$+$r\e(B
\e$B7h$a$k$b$N$N$I$A$i$+$G$9!#=i4|@_Dj$O\e(B @code{password} \e$B$G$9!#\e(B
+
+@item :connection
+\e$B%5!<%P!<$K@\B3$9$k$H$-$K;H$&%9%H%j!<%`$G!"\e(B@code{ssl}, @code{tls} \e$B$^$?$O\e(B
+\e$B$=$l0J30$r;XDj$G$-$^$9!#%G%#%U%)%k%H$O\e(B @code{nil} \e$B$G!"0BA4$G$O$J$$@\B3$r\e(B
+\e$BMQ$$$^$9!#\e(BSSL/TLS \e$B$G$O30It%W%m%0%i%`$H%i%$%V%i%j$,I,MW$G$"$k$3$H$KCm0U$7\e(B
+\e$B$F2<$5$$\e(B:
+
+@itemize @bullet
+@item
+@dfn{ssl:} SSL \e$B$r;H$$$^$9!#\e(BOpenSSL (@samp{openssl} \e$B%W%m%0%i%`\e(B) \e$B$+\e(B SSLeay
+(@samp{s_client}) \e$B$H30It%i%$%V%i%j\e(B @samp{ssl.el} \e$B$,I,MW$G$9!#\e(B
+@item
+@dfn{starttls:} STARTTLS (SSL \e$B$KN`;w\e(B) \e$B$r;H$$$^$9!#30It%i%$%V%i\e(B
+\e$B%j\e(B @samp{starttls.el} \e$B$H\e(B @samp{starttls} \e$B%W%m%0%i%`$,I,MW$G$9!#\e(B
+@samp{starttls}.
+@end itemize
+
+@item :leave
+\e$BHs\e(B-@code{nil} \e$B$G%a!<%k$r%5!<%P!<$K;D$7!"%a%C%;!<%8$N<hF@$K\e(B UIDL \e$B$r;H$$$^\e(B
+\e$B$9!#%G%#%U%)%k%H$O\e(B @code{nil} \e$B$G$9!#\e(B
@end table
@code{:program} \e$B$H\e(B @code{:function} \e$B%-!<%o!<%I$,;XDj$5$l$F$$$J$$$H!"\e(B
@dfn{starttls:} STARTTLS (SSL \e$B$KN`;w\e(B) \e$B$r;H$$$^$9!#30It%i%$%V%i\e(B
\e$B%j\e(B @samp{starttls.el} \e$B$H\e(B @samp{starttls} \e$B%W%m%0%i%`$,I,MW$G$9!#\e(B
@item
-@dfn{ssl:} SSL \e$B$r;H$$$^$9!#\e(BOpenSSL (@samp{openssl} \e$B%W%m%0%i\e(B
-\e$B%`\e(B) \e$B$+\e(B SSLeay (@samp{s_client}) \e$B$H30It%i%$%V%i%j\e(B @samp{ssl.el} \e$B$,I,MW$G\e(B
-\e$B$9!#\e(B
+@dfn{ssl:} SSL \e$B$r;H$$$^$9!#\e(BOpenSSL (@samp{openssl} \e$B%W%m%0%i%`\e(B) \e$B$+\e(B SSLeay
+(@samp{s_client}) \e$B$H30It%i%$%V%i%j\e(B @samp{ssl.el} \e$B$,I,MW$G$9!#\e(B
@item
@dfn{shell:} \e$B%7%'%kL?Na$r;H$C$F\e(B @sc{imap} \e$B@\B3$r3+;O$7$^$9!#\e(B
@item
and says what authentication scheme to use. The default is
@code{password}.
+@item :connection
+What stream to use for connecting to the server, this can be the symbol
+@code{ssl}, the symbol @code{tls} or others. The default is @code{nil}
+and use insecure connections. Note that for SSL/TLS, you need external
+programs and libraries:
+
+@itemize @bullet
+@item
+@dfn{ssl:} Connect through SSL@. Requires OpenSSL (the program
+@samp{openssl}) or SSLeay (@samp{s_client}) as well as the external
+library @samp{ssl.el}.
+@item
+@dfn{starttls:} Connect via the STARTTLS extension (similar to SSL)@.
+Requires the external library @samp{starttls.el} and program
+@samp{starttls}.
+@end itemize
+
+@item :leave
+Non-@code{nil} if mail is to be left on the server and UIDL used for
+message retrieval. The default is @code{nil}.
+
@end table
If the @code{:program} and @code{:function} keywords aren't specified,