{"size": 3155, "ext": "scrbl", "max_stars_repo_path": "pkgs/net-doc/net/scribblings/sendmail.scrbl", "max_stars_repo_name": "lkh01/racket", "max_stars_repo_stars_event_min_datetime": "2018-07-29T04:13:52.000Z", "max_stars_repo_stars_event_max_datetime": "2022-02-14T16:11:17.000Z", "max_issues_repo_path": "pkgs/net-doc/net/scribblings/sendmail.scrbl", "max_issues_repo_name": "lkh01/racket", "max_issues_repo_issues_event_min_datetime": "2017-08-25T20:26:37.000Z", "max_issues_repo_issues_event_max_datetime": "2022-02-26T17:48:40.000Z", "max_forks_repo_path": "pkgs/net-doc/net/scribblings/sendmail.scrbl", "max_forks_repo_name": "lkh01/racket", "max_forks_repo_forks_event_min_datetime": "2016-04-25T11:47:57.000Z", "max_forks_repo_forks_event_max_datetime": "2017-05-09T14:52:48.000Z"}
{"max_stars_count": 10, "max_issues_count": 15, "max_forks_count": 3, "avg_line_length": 38.0120481928, "max_line_length": 73, "alphanum_fraction": 0.6507131537}
#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.
