package email_message

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module Mimetype : sig ... end
type attachment_name = string
val sexp_of_attachment_name : attachment_name -> Sexplib0.Sexp.t
module Content : sig ... end
type t
val sexp_of_t : t -> Sexplib0.Sexp.t
val create : from:Email_address.t -> to_:Email_address.t list -> ?cc:Email_address.t list -> ?reply_to:Email_address.t -> subject:string -> id:string -> ?in_reply_to:string -> date_string:string -> ?auto_generated:unit -> ?extra_headers:(Headers.Name.t * Headers.Value.t) list -> ?attachments:(attachment_name * Content.t) list -> Content.t -> t
val from : t -> Email_address.t option
val to_ : t -> Email_address.t list option
val cc : t -> Email_address.t list option
val subject : t -> string option
val id : t -> string option
val extract_body : ?content_type:Mimetype.t -> t -> string option

extract_body ?content_type t returns the body associated with the email part that matches the content_type mimetype, or none if t does not contain a body or part of type content_type.

val extract_body_ext' : accept: ((Mimetype.t * (string * string option) list) option -> 'format option) -> t -> ('format * string) Core.Sequence.t

extract_body_ext and extract_body_ext' Attempt to find the message body in the preferred format.

accept is used to select only content parts in a format that is supported. If a multipart component is accepted by accept, we do NOT recursively extract the body. We do so otherwise.

order will be used to select the least part (by default the first part)

val extract_body_ext : accept: ((Mimetype.t * (string * string option) list) option -> 'format option) -> ?order:('format -> 'format -> int) -> t -> ('format * string) option

Related parts are those that are included in a multi-part message with a "Content-ID" header. This content can be referenced by adding the "cid:" prefix and stripping the enclosing '<' and '>'.

For example (from https://tools.ietf.org/html/rfc2392):

        From: foo1@bar.net
        To: foo2@bar.net
        Subject: A simple example
        Mime-Version: 1.0
        Content-Type: multipart/related; boundary="boundary-example-1"; type=Text/HTML
        --boundary-example 1
        Content-Type: Text/HTML; charset=US-ASCII

        to the other body part, for example through a statement such as:
        <IMG SRC="cid:foo4*foo1@bar.net" ALT="IETF logo">

        --boundary-example-1

        Content-ID: <foo4*foo1@bar.net>
        Content-Type: IMAGE/GIF
        Content-Transfer-Encoding: BASE64

        R0lGODlhGAGgAPEAAP/////ZRaCgoAAAACH+PUNvcHlyaWdodCAoQykgMTk5
        NSBJRVRGLiBVbmF1dGhvcml6ZWQgZHVwbGljYXRpb24gcHJvaGliaXRlZC4A
        etc...

        --boundary-example-1--

Calling all_related_parts on this email would return a list of length one where the attachment_name is "foo4*foo1@bar.net" for the single entry.

Related parts are often used for inline images.

val inline_parts : t -> Content.t list
module Expert : sig ... end
module Stable : sig ... end
OCaml

Innovation. Community. Security.