summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/goamz/goamz/exp/ses/ses_types.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/goamz/goamz/exp/ses/ses_types.go')
-rw-r--r--vendor/github.com/goamz/goamz/exp/ses/ses_types.go156
1 files changed, 156 insertions, 0 deletions
diff --git a/vendor/github.com/goamz/goamz/exp/ses/ses_types.go b/vendor/github.com/goamz/goamz/exp/ses/ses_types.go
new file mode 100644
index 000000000..698fa7623
--- /dev/null
+++ b/vendor/github.com/goamz/goamz/exp/ses/ses_types.go
@@ -0,0 +1,156 @@
+// ses_types
+package ses
+
+// Private internal representation of message body.
+type Body struct {
+ Html Content
+ Text Content
+}
+
+// Content data structure with charset and payload (Data).
+type Content struct {
+ Charset string
+ Data string
+}
+
+// Email data structure. Should be main data structure used
+// for sending emails using SES.
+type Email struct {
+ destination *destination
+ message Message
+ replyTo []string
+ returnPath string
+ source string
+}
+
+// Private internal representation for email destinations.
+type destination struct {
+ bccAddresses []string
+ ccAddresses []string
+ toAddresses []string
+}
+
+// Message data structure.
+type Message struct {
+ Body Body
+ Subject Content
+}
+
+// SES Error structure.
+type SESError struct {
+ Type string
+ Code string
+ Message string
+ Detail string
+ RequestId string
+}
+
+func (err *SESError) Error() string {
+ return err.Message
+}
+
+// Returns a pointer to an empty but initialized Email.
+func NewEmail() *Email {
+ return &Email{
+ destination: newDestination(),
+ replyTo: make([]string, 5)}
+}
+
+// Private function to return an initialized destination.
+func newDestination() *destination {
+ return &destination{
+ bccAddresses: make([]string, 5),
+ ccAddresses: make([]string, 5),
+ toAddresses: make([]string, 5)}
+}
+
+// Add a BCC destination to Email.
+func (em *Email) AddBCC(address string) {
+ em.destination.bccAddresses = append(em.destination.bccAddresses, address)
+}
+
+// Add multiple BCC destinations to Email.
+func (em *Email) AddBCCs(addresses []string) {
+ em.destination.bccAddresses = append(em.destination.bccAddresses, addresses...)
+}
+
+// Add a CC destination to Email.
+func (em *Email) AddCC(address string) {
+ em.destination.ccAddresses = append(em.destination.ccAddresses, address)
+}
+
+// Add multiple CC destinations to Email.
+func (em *Email) AddCCs(addresses []string) {
+ em.destination.ccAddresses = append(em.destination.ccAddresses, addresses...)
+}
+
+// Add a To destination to Email.
+func (em *Email) AddTo(address string) {
+ em.destination.toAddresses = append(em.destination.toAddresses, address)
+}
+
+// Add multiple To destinations to Email.
+func (em *Email) AddTos(addresses []string) {
+ em.destination.toAddresses = append(em.destination.toAddresses, addresses...)
+}
+
+// Add a reply-to address to Email.
+func (em *Email) AddReplyTo(address string) {
+ em.replyTo = append(em.replyTo, address)
+}
+
+// Add multiple reply-to addresses to Email.
+func (em *Email) AddReplyTos(addresses []string) {
+ em.replyTo = append(em.replyTo, addresses...)
+}
+
+// Set the return path for Email.
+func (em *Email) SetReturnPath(path string) {
+ em.returnPath = path
+}
+
+// Set the source address for Email.
+func (em *Email) SetSource(source string) {
+ em.source = source
+}
+
+// Set the Email message.
+func (em *Email) SetMessage(message Message) {
+ em.message = message
+}
+
+// Set the subject for the Email message.
+// Uses ASCII as charset.
+func (em *Email) SetSubject(subject string) {
+ em.message.Subject = Content{Data: subject}
+}
+
+// Set the subject for the Email message.
+// Uses the charset (or ASCII if none) of Content.
+func (em *Email) SetSubjectAsContent(subject Content) {
+ em.message.Subject = subject
+}
+
+// Sets the HTML body of the Email message.
+// Uses ASCII as charset.
+func (em *Email) SetBodyHtml(html string) {
+ em.message.Body.Html = Content{Data: html}
+}
+
+// Sets the HTML body of the Email message.
+// Uses the charset (or ASCII if none) of Content.
+func (em *Email) SetBodyHtmlAsContent(html Content) {
+ em.message.Body.Html = html
+}
+
+// Sets the raw text body of the Email message.
+// Uses ASCII as charset.
+func (em *Email) SetBodyRawText(text string) {
+ em.message.Body.Text = Content{Data: text}
+}
+
+// Sets the raw test body of the Email message.
+// Uses the charset (or ASCII if none) of Content.
+func (em *Email) SetBodyRawTextAsContent(text Content) {
+ em.message.Body.Text = text
+}