7.2.1.1 Direct Functions

These functions are called direct because they open a direct connection between your machine and the NNTP server. The behavior of these functions is also affected by commonly understood variables (see Common Variables).

nntp-open-network-stream

This is the default, and simply connects to some port or other on the remote system. If both Emacs and the server supports it, the connection will be upgraded to an encrypted STARTTLS connection automatically.

network-only

The same as the above, but don’t do automatic STARTTLS upgrades.

nntp-open-tls-stream

Opens a connection to a server over a secure channel. To use this you must have GnuTLS installed. You then define a server as follows:

;; "nntps" is port 563 and is predefined in our /etc/services
;; however, ‘gnutls-cli -p’ doesn’t like named ports.
;;
(nntp "snews.bar.com"
      (nntp-open-connection-function nntp-open-tls-stream)
      (nntp-port-number 563)
      (nntp-address "snews.bar.com"))
nntp-open-ssl-stream

Opens a connection to a server over a secure channel. To use this you must have OpenSSL installed. You then define a server as follows:

;; "snews" is port 563 and is predefined in our /etc/services
;; however, ‘openssl s_client -port’ doesn’t like named ports.
;;
(nntp "snews.bar.com"
      (nntp-open-connection-function nntp-open-ssl-stream)
      (nntp-port-number 563)
      (nntp-address "snews.bar.com"))
nntp-open-netcat-stream

Opens a connection to an NNTP server using the netcat program. You might wonder why this function exists, since we have the default nntp-open-network-stream which would do the job. (One of) the reason(s) is that if you are behind a firewall but have direct connections to the outside world thanks to a command wrapper like runsocks, you can use it like this:

(nntp "socksified"
      (nntp-pre-command "runsocks")
      (nntp-open-connection-function nntp-open-netcat-stream)
      (nntp-address "the.news.server"))

With the default method, you would need to wrap your whole Emacs session, which is not a good idea.

nntp-open-telnet-stream

Like nntp-open-netcat-stream, but uses telnet rather than netcat. telnet is a bit less robust because of things like line-end-conversion, but sometimes netcat is simply not available. The previous example would turn into:

(nntp "socksified"
      (nntp-pre-command "runsocks")
      (nntp-open-connection-function nntp-open-telnet-stream)
      (nntp-address "the.news.server")
      (nntp-end-of-line "\n"))