95 lines
2.2 KiB
Go
95 lines
2.2 KiB
Go
// Package smtp implements the Simple Mail Transfer Protocol as defined in RFC 5321.
|
|
//
|
|
// It also implements the following extensions:
|
|
//
|
|
// - 8BITMIME (RFC 1652)
|
|
// - AUTH (RFC 2554)
|
|
// - STARTTLS (RFC 3207)
|
|
// - ENHANCEDSTATUSCODES (RFC 2034)
|
|
// - SMTPUTF8 (RFC 6531)
|
|
// - REQUIRETLS (RFC 8689)
|
|
// - CHUNKING (RFC 3030)
|
|
// - BINARYMIME (RFC 3030)
|
|
// - DSN (RFC 3461, RFC 6533)
|
|
//
|
|
// LMTP (RFC 2033) is also supported.
|
|
//
|
|
// Additional extensions may be handled by other packages.
|
|
package smtp
|
|
|
|
type BodyType string
|
|
|
|
const (
|
|
Body7Bit BodyType = "7BIT"
|
|
Body8BitMIME BodyType = "8BITMIME"
|
|
BodyBinaryMIME BodyType = "BINARYMIME"
|
|
)
|
|
|
|
type DSNReturn string
|
|
|
|
const (
|
|
DSNReturnFull DSNReturn = "FULL"
|
|
DSNReturnHeaders DSNReturn = "HDRS"
|
|
)
|
|
|
|
// MailOptions contains parameters for the MAIL command.
|
|
type MailOptions struct {
|
|
// Value of BODY= argument, 7BIT, 8BITMIME or BINARYMIME.
|
|
Body BodyType
|
|
|
|
// Size of the body. Can be 0 if not specified by client.
|
|
Size int64
|
|
|
|
// TLS is required for the message transmission.
|
|
//
|
|
// The message should be rejected if it can't be transmitted
|
|
// with TLS.
|
|
RequireTLS bool
|
|
|
|
// The message envelope or message header contains UTF-8-encoded strings.
|
|
// This flag is set by SMTPUTF8-aware (RFC 6531) client.
|
|
UTF8 bool
|
|
|
|
// Value of RET= argument, FULL or HDRS.
|
|
Return DSNReturn
|
|
|
|
// Envelope identifier set by the client.
|
|
EnvelopeID string
|
|
|
|
// The authorization identity asserted by the message sender in decoded
|
|
// form with angle brackets stripped.
|
|
//
|
|
// nil value indicates missing AUTH, non-nil empty string indicates
|
|
// AUTH=<>.
|
|
//
|
|
// Defined in RFC 4954.
|
|
Auth *string
|
|
}
|
|
|
|
type DSNNotify string
|
|
|
|
const (
|
|
DSNNotifyNever DSNNotify = "NEVER"
|
|
DSNNotifyDelayed DSNNotify = "DELAY"
|
|
DSNNotifyFailure DSNNotify = "FAILURE"
|
|
DSNNotifySuccess DSNNotify = "SUCCESS"
|
|
)
|
|
|
|
type DSNAddressType string
|
|
|
|
const (
|
|
DSNAddressTypeRFC822 DSNAddressType = "RFC822"
|
|
DSNAddressTypeUTF8 DSNAddressType = "UTF-8"
|
|
)
|
|
|
|
// RcptOptions contains parameters for the RCPT command.
|
|
type RcptOptions struct {
|
|
// Value of NOTIFY= argument, NEVER or a combination of either of
|
|
// DELAY, FAILURE, SUCCESS.
|
|
Notify []DSNNotify
|
|
|
|
// Original recipient set by client.
|
|
OriginalRecipientType DSNAddressType
|
|
OriginalRecipient string
|
|
}
|