ses

package
v0.0.0-...-d2295bd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 21, 2021 License: LGPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NOTIFICATION_TYPE_BOUNCE    = "Bounce"
	NOTIFICATION_TYPE_COMPLAINT = "Complaint"
	NOTIFICATION_TYPE_DELIVERY  = "Delivery"
	NOTIFICATION_TYPE_RECEIVED  = "Received"

	//http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-types
	BOUNCE_TYPE_UNDETERMINED           = "Undetermined"
	BOUNCE_TYPE_PERMANENT              = "Permanent"
	BOUNCE_TYPE_TRANSIENT              = "Transient"
	BOUNCE_SUBTYPE_UNDETERMINED        = "Undetermined"
	BOUNCE_SUBTYPE_GENERAL             = "General"
	BOUNCE_SUBTYPE_NO_EMAIL            = "NoEmail"
	BOUNCE_SUBTYPE_SUPPRESSED          = "Suppressed"
	BOUNCE_SUBTYPE_MAILBOX_FULL        = "MailboxFull"
	BOUNCE_SUBTYPE_MESSAGE_TOO_LARGE   = "MessageTooLarge"
	BOUNCE_SUBTYPE_CONTENT_REJECTED    = "ContentRejected"
	BOUNCE_SUBTYPE_ATTACHMENT_REJECTED = "AttachmentRejected"

	// http://www.iana.org/assignments/marf-parameters/marf-parameters.xml#marf-parameters-2
	COMPLAINT_FEEDBACK_TYPE_ABUSE        = "abuse"
	COMPLAINT_FEEDBACK_TYPE_AUTH_FAILURE = "auth-failure"
	COMPLAINT_FEEDBACK_TYPE_FRAUD        = "fraud"
	COMPLAINT_FEEDBACK_TYPE_NOT_SPAM     = "not-spam"
	COMPLAINT_FEEDBACK_TYPE_OTHER        = "other"
	COMPLAINT_FEEDBACK_TYPE_VIRUS        = "virus"

	// http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-notifications-contents.html#receiving-email-notifications-contents-dkimverdict-object
	VERDICT_STATUS_PASS              = "PASS"
	VERDICT_STATUS_FAIL              = "FAIL"
	VERDICT_STATUS_GRAY              = "GRAY"
	VERDICT_STATUS_PROCESSING_FAILED = "PROCESSING_FAILED"

	RECEIPT_ACTION_S3        = "S3"
	RECEIPT_ACTION_SNS       = "SNS"
	RECEIPT_ACTION_BOUNCE    = "Bounce"
	RECEIPT_ACTION_LAMBDA    = "Lambda"
	RECEIPT_ACTION_STOP      = "Stop"
	RECEIPT_ACTION_WORK_MAIL = "WorkMail"
)

http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#top-level-json-object http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-notifications-contents.html

View Source
const MAX_RECIPIENTS_PER_REQUEST = 50

Variables

This section is empty.

Functions

This section is empty.

Types

type Body

type Body struct {
	Html *Content
	Text *Content
}

Represents the body of the message. You can specify text, HTML, or both. If you use both, then the message should display correctly in the widest variety of email clients.

type Bounce

type Bounce struct {
	BounceType        string              `json:"bounceType"`
	BounceSubType     string              `json:"bounceSubType"`
	BouncedRecipients []*BouncedRecipient `json:"bouncedRecipients"`
	ReportingMTA      string              `json:"reportingMTA"`
	Timestamp         time.Time           `json:"timestamp"`
	FeedbackId        string              `json:"feedbackId"`
}

A bounce notifiction object http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounce-object

type BouncedRecipient

type BouncedRecipient struct {
	EmailAddress   string `json:"emailAddress"`
	Action         string `json:"action"`
	Status         string `json:"status"`
	DiagnosticCode string `json:"diagnosticCode"`
}

A bounced recipient http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#bounced-recipients

type CheckVerdict

type CheckVerdict struct {
	Status string `json:"status"`
}

type CommonHeaders

type CommonHeaders struct {
	MessageId  string   `json:"messageId"`
	To         []string `json:"to"`
	From       []string `json:"from"`
	ReturnPath string   `json:"returnPath"`
	Date       string   `json:"date"`
	Subject    string   `json:"subject"`
}

type ComplainedRecipient

type ComplainedRecipient struct {
	EmailAddress string `json:"emailAddress"`
}

A receipient which complained http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#complained-recipients

type Complaint

type Complaint struct {
	UserAgent             string                 `json:"userAgent"`
	ComplainedRecipients  []*ComplainedRecipient `json:"complainedRecipients"`
	ComplaintFeedbackType string                 `json:"complaintFeedbackType"`
	ArrivalDate           time.Time              `json:"arrivalDate"`
	Timestamp             time.Time              `json:"timestamp"`
	FeedbackId            string                 `json:"feedbackId"`
}

A complain notification object http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#complaint-object

type Content

type Content struct {
	Charset string
	Data    string
}

Represents textual data, plus an optional character set specification. By default, the text must be 7-bit ASCII, due to the constraints of the SMTP protocol. If the text must contain any other characters, then you must also specify a character set. Examples include UTF-8, ISO-8859-1, and Shift_JIS.

type Delivery

type Delivery struct {
	Timestamp            time.Time `json:"timestamp"`
	ProcessingTimeMillis int64     `json:"processingTimeMillis"`
	Recipients           []string  `json:"recipients"`
	SmtpResponse         string    `json:"smtpResponse"`
	ReportingMTA         string    `json:"reportingMTA"`
}

A successful delivery http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notification-contents.html#delivery-object

type Destination

type Destination struct {
	ToAddresses  []string
	CcAddresses  []string
	BccAddresses []string
}

Represents the destination of the message, consisting of To:, CC:, and BCC: fields.

func NewDestination

func NewDestination(toAddresses, ccAddresses, bccAddresses []string) *Destination

Creates a new destination TODO: specify address encoding

type Error

type Error struct {
	StatusCode int    `xml:"StatusCode"`
	Code       string `xml:"Code"`
	Message    string `xml:"Message"`
}

func (*Error) Error

func (err *Error) Error() string

func (*Error) String

func (err *Error) String() string

type ErrorResponse

type ErrorResponse struct {
	XMLName   xml.Name `xml:"ErrorResponse"`
	RequestId string   `xml:"RequestId"`
	Error     Error    `xml:"Error"`
}

type Mail

type Mail struct {
	Timestamp        time.Time      `json:"timestamp"`
	MessageId        string         `json:"messageId"`
	Source           string         `json:"source"`
	Destination      []string       `json:"destination"`
	Headers          []MailHeader   `json:"headers,omitempty"`
	CommonHeaders    *CommonHeaders `json:"commonHeaders,omitempty"`
	HeadersTruncated bool           `json:"headersTruncated,omitempty"`
}

Represent the delivery of an email

type MailHeader

type MailHeader struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

type Message

type Message struct {
	Subject *Content
	Body    *Body
}

Represents the message to be sent, composed of a subject and a body.

func NewMessage

func NewMessage(subject, textBody, htmlBody string) *Message

Creates a new message with UTF-8 encoding

type Receipt

type Receipt struct {
	Action               ReceiptAction `json:"action"`
	Timestamp            time.Time     `json:"timestamp"`
	ProcessingTimeMillis int64         `json:"processingTimeMillis"`
	Recipients           []string      `json:"recipients"`
	DkimVerdict          CheckVerdict  `json:"dkimVerdict"`
	SpamVerdict          CheckVerdict  `json:"spamVerdict"`
	SpfVerdict           CheckVerdict  `json:"spfVerdict"`
	VirusVerdict         CheckVerdict  `json:"virusVerdict"`
}

A receipt event http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-notifications-contents.html#receiving-email-notifications-contents-receipt-object

type ReceiptAction

type ReceiptAction struct {
	Type            string `json:"type"`
	TopicArn        string `json:"topicArn"`
	BucketName      string `json:"bucketName,omitempty"`
	ObjectKey       string `json:"objectKey,omitempty"`
	SmtpReplyCode   string `json:"smtpReplyCode,omitempty"`
	StatusCode      string `json:"statusCode,omitempty"`
	Message         string `json:"message,omitempty"`
	Sender          string `json:"sender,omitempty"`
	FunctionArn     string `json:"functionArn,omitempty"`
	InvocationType  string `json:"invocationType,omitempty"`
	OrganizationArn string `json:"organizationArn,omitempty"`
}

type ResponseMetadata

type ResponseMetadata struct {
	MessageId string `xml:"RequestId"`
}

type SES

type SES struct {
	Auth   aws.Auth
	Region aws.Region
}

func New

func New(auth aws.Auth, region aws.Region) *SES

Creates a new instance of the SES client

func (*SES) SendEmail

func (s *SES) SendEmail(
	fromAddress string,
	destination *Destination,
	message *Message,
) (*SendEmailResponse, error)

Composes an email message and sends it. See http://docs.aws.amazon.com/ses/latest/APIReference/API_SendEmail.html

func (*SES) SendRawEmail

func (s *SES) SendRawEmail(
	destinations []string,
	rawMessage []byte,
) (*SendRawEmailResponse, error)

Sends a raw email message as is. See http://docs.aws.amazon.com/ses/latest/APIReference/API_SendRawEmail.html

func (*SES) SimulateDelivery

func (s *SES) SimulateDelivery(from string) (*SendEmailResponse, error)

This is an helper function to send emails to the mailbox simulator. http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mailbox-simulator.html

from: the source email address registered in your SES account

type SNSNotification

type SNSNotification struct {
	NotificationType string     `json:"notificationType"`
	Bounce           *Bounce    `json:"bounce,omitempty"`
	Complaint        *Complaint `json:"complaint,omitempty"`
	Delivery         *Delivery  `json:"delivery,omitempty"`
	Receipt          *Receipt   `json:"receipt,omitempty"`
	Content          *string    `json:"content,omitempty"`
	Mail             *Mail      `json:"mail"`
}

type SendEmailResponse

type SendEmailResponse struct {
	XMLName          xml.Name         `xml:"SendEmailResponse"`
	SendEmailResult  SendEmailResult  `xml:"SendEmailResult"`
	ResponseMetadata ResponseMetadata `xml:"ResponseMetadata"`
}

Represents a unique message ID returned from a successful SendEmail request.

type SendEmailResult

type SendEmailResult struct {
	MessageId string `xml:"MessageId"`
}

type SendRawEmailResponse

type SendRawEmailResponse struct {
	XMLName            xml.Name           `xml:"SendRawEmailResponse"`
	SendRawEmailResult SendRawEmailResult `xml:"SendRawEmailResult"`
	ResponseMetadata   ResponseMetadata   `xml:"ResponseMetadata"`
}

type SendRawEmailResult

type SendRawEmailResult struct {
	MessageId string `xml:"MessageId"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL