On this page:
7.1 Sendmail Functions
send-mail-message/  port
send-mail-message
7.2 Sendmail Unit
sendmail@
7.3 Sendmail Signature
sendmail^

7 sendmail: Sending E-Mail

The net/sendmail module provides tools for sending electronic mail messages using a sendmail program on the local system. See also the 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.

7.1 Sendmail Functions

procedure

(send-mail-message/port from    
  subject    
  to    
  cc    
  bcc    
  extra-header ...)  output-port?
  from : (or/c string? false/c)
  subject : string?
  to : (listof string?)
  cc : (listof string?)
  bcc : (listof string?)
  extra-header : string?
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.

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 close-output-port on the return value as soon as the necessary text has been written, so that the sendmail process can complete.

The from argument can be any value; of course, spoofing should be used with care. If it is #f, no “From:” header is generated, which usually means that your sendmail program will fill in the right value based on the user.

procedure

(send-mail-message from    
  subject    
  to    
  cc    
  bcc    
  body    
  extra-header ...)  void?
  from : string?
  subject : string?
  to : (listof string?)
  cc : (listof string?)
  bcc : (listof string?)
  body : (listof string?)
  extra-header : string?
Like send-mail-message/port, but with 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.

7.2 Sendmail Unit

sendmail@ and sendmail^ are deprecated. They exist for backward-compatibility and will likely be removed in the future. New code should use the net/sendmail module.

 (require net/sendmail-unit) package: compatibility-lib

value

sendmail@ : unit?

Imports nothing, exports sendmail^.

7.3 Sendmail Signature

 (require net/sendmail-sig) package: compatibility-lib

signature

sendmail^ : signature

Includes everything exported by the net/sendmail module.