83 lines
3.1 KiB
Racket
83 lines
3.1 KiB
Racket
#lang scribble/doc
|
|
@(require "common.rkt"
|
|
(for-label net/sendmail net/sendmail-unit net/sendmail-sig))
|
|
|
|
@title[#:tag "sendmail"]{@exec{sendmail}: Sending E-Mail}
|
|
|
|
@defmodule[net/sendmail]{The @racketmodname[net/sendmail] module
|
|
provides tools for sending electronic mail messages using a
|
|
@exec{sendmail} program on the local system. See also the
|
|
@racketmodname[net/smtp] package, which sends mail via SMTP.}
|
|
|
|
All strings used in mail messages are assumed to conform to their
|
|
corresponding SMTP specifications, except as noted otherwise.
|
|
|
|
@section{Sendmail Functions}
|
|
|
|
@defproc[(send-mail-message/port [from (or/c string? false/c)]
|
|
[subject string?]
|
|
[to (listof string?)]
|
|
[cc (listof string?)]
|
|
[bcc (listof string?)]
|
|
[extra-header string?] ...)
|
|
output-port?]{
|
|
|
|
The first argument is the header for the sender, the second is the
|
|
subject line, the third a list of ``To:'' recipients, the fourth a list
|
|
of ``CC:'' recipients, and the fifth a list of ``BCC:'' recipients. All
|
|
of these are quoted if they contain non-ASCII characters.
|
|
@margin-note{Note that passing already-quoted strings would be fine,
|
|
since then there are no non-ASCII characters.}
|
|
Additional arguments argument supply other mail headers, which must be
|
|
provided as lines (not terminated by a linefeed or carriage return) to
|
|
include verbatim in the header.
|
|
|
|
The return value is an output port into which the client must write
|
|
the message. Clients are urged to use @racket[close-output-port] on
|
|
the return value as soon as the necessary text has been written, so
|
|
that the sendmail process can complete.
|
|
|
|
The @racket[from] argument can be any value; of course, spoofing should
|
|
be used with care. If it is @racket[#f], no ``From:'' header is
|
|
generated, which usually means that your sendmail program will fill in
|
|
the right value based on the user.}
|
|
|
|
@defproc[(send-mail-message [from string?]
|
|
[subject string?]
|
|
[to (listof string?)]
|
|
[cc (listof string?)]
|
|
[bcc (listof string?)]
|
|
[body (listof string?)]
|
|
[extra-header string?] ...)
|
|
void?]{
|
|
|
|
Like @racket[send-mail-message/port], but with @racket[body] as a list
|
|
of strings, each providing a line of the message body.
|
|
|
|
Lines that contain a single period do not need to be quoted.}
|
|
|
|
|
|
@; ----------------------------------------
|
|
|
|
@section{Sendmail Unit}
|
|
|
|
@margin-note{@racket[sendmail@] and @racket[sendmail^] are deprecated.
|
|
They exist for backward-compatibility and will likely be removed in
|
|
the future. New code should use the @racketmodname[net/sendmail] module.}
|
|
|
|
@defmodule[net/sendmail-unit]
|
|
|
|
@defthing[sendmail@ unit?]{
|
|
|
|
Imports nothing, exports @racket[sendmail^].}
|
|
|
|
@; ----------------------------------------
|
|
|
|
@section{Sendmail Signature}
|
|
|
|
@defmodule[net/sendmail-sig]
|
|
|
|
@defsignature[sendmail^ ()]{}
|
|
|
|
Includes everything exported by the @racketmodname[net/sendmail] module.
|