Documentation
¶
Index ¶
- Constants
- Variables
- func DecodeEmail(token string) (string, error)
- func EncodeEmail(email string) (string, error)
- func HandleWebhook(res http.ResponseWriter, req *http.Request)
- func SendEmail(ctx context.Context, email *Email) error
- func UpdateTemplate(ctx context.Context, alias string, options ...TemplateOption) error
- type Attachment
- type BatchSendResponse
- type Config
- type Email
- type EmailOption
- type EmailRecieved
- type ReceivedEmail
- func (e *ReceivedEmail) ExtractAttachments(ctx context.Context) ([]*resend.Attachment, error)
- func (e *ReceivedEmail) Forward(ctx context.Context, to ...string) error
- func (e *ReceivedEmail) GetBody() string
- func (e *ReceivedEmail) GetFrom() *mail.Address
- func (e *ReceivedEmail) GetID() string
- func (e *ReceivedEmail) GetSubject() string
- func (e *ReceivedEmail) Timestamp() time.Time
- func (e *ReceivedEmail) Valid() error
- type SendResponse
- type TemplateOption
- type WebhookEmailReceieved
Constants ¶
const ( // ConfigEnvPrefix is the prefix applied to environment variables for configuring Resend. ConfigEnvPrefix = config.ConfigEnvPrefix + "RESEND_" // TagUserID is a tag containing a user ID. TagUserID string = "user_id" // TagCategory is a tag containing a category. TagCategory string = "category" // TagCategoryPromotional is the promotional category. TagCategoryPromotional string = "promotional" // TagCategoryAccount is the account category. TagCategoryAccount string = "account" )
Variables ¶
var ErrInvalidEmail = errors.New("email is invalid")
Functions ¶
func DecodeEmail ¶ added in v0.87.0
DecodeEmail decrypts and returns the plain-text email encrypted by EncodeEmail.
func EncodeEmail ¶ added in v0.87.0
EncodeEmail encrypts an email using AES-GCM with a key derived from the passphrase + salt. The result is URL-safe base64 (no padding).
func HandleWebhook ¶
func HandleWebhook(res http.ResponseWriter, req *http.Request)
HandleWebhook will handle incoming webhook requests from Resend.
func UpdateTemplate ¶ added in v0.86.0
func UpdateTemplate(ctx context.Context, alias string, options ...TemplateOption) error
UpdateTemplate will update the template with the given alias. If a template with the alias does not exist, it will be created.
Types ¶
type Attachment ¶ added in v0.25.0
type BatchSendResponse ¶ added in v0.87.0
type BatchSendResponse []SendResponse
BatchSendResponse contains data related to a batch email request.
func BatchSendEmails ¶ added in v0.87.0
func BatchSendEmails(ctx context.Context, emails ...*Email) (BatchSendResponse, error)
BatchSendEmails sends the given emails in a batch request.
type Config ¶
type Config struct {
WebHookSecret string `koanf:"webhooksecret" validate:"required"`
APIKey string `koanf:"apikey" validate:"required"`
AdminEmail string `koanf:"adminemail" validate:"required,email"`
ReplyToEmail string `koanf:"replyto" validate:"required,email"`
Key string `koanf:"key" validate:"required"`
Salt string `koanf:"salt" validate:"required"`
}
Config structure.
type Email ¶ added in v0.87.0
Email is an email to be processed with the resend API.
func NewTemplatedEmail ¶ added in v0.87.0
func NewTemplatedEmail(templateID string, options ...EmailOption) (*Email, error)
NewTemplatedEmail creates a new email using the given template and with any options specified.
type EmailOption ¶ added in v0.61.0
type EmailOption func(*Email)
EmailOption is a functional option to apply to an email.
func Bcc ¶ added in v0.61.0
func Bcc(bcc ...string) EmailOption
Bcc option sets the bcc address of an email.
func Cc ¶ added in v0.61.0
func Cc(cc ...string) EmailOption
Cc option sets the cc address of an email.
func To ¶ added in v0.61.0
func To(to ...string) EmailOption
To option sets the to address of an email.
func WithTag ¶ added in v0.61.0
func WithTag(key string, value string) EmailOption
WithTag option applies the given tag to the email.
func WithVariable ¶ added in v0.86.0
func WithVariable(key string, value any) EmailOption
WithVariable option assigns a value to the given template variable in the email template.
type EmailRecieved ¶ added in v0.25.0
type EmailRecieved struct {
EmailId string `json:"email_id,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
From string `json:"from,omitempty"`
To []string `json:"to,omitempty"`
Bcc []string `json:"bcc,omitempty"`
Cc []string `json:"cc,omitempty"`
MessageId string `json:"message_id,omitempty"`
Subject string `json:"subject,omitempty"`
Attachments []Attachment `json:"attachments,omitempty"`
}
type ReceivedEmail ¶ added in v0.25.0
type ReceivedEmail struct {
*resend.ReceivedEmail
}
func (*ReceivedEmail) ExtractAttachments ¶ added in v0.61.0
func (e *ReceivedEmail) ExtractAttachments(ctx context.Context) ([]*resend.Attachment, error)
ExtractAttachments will extract and return the attachments on the email, if any.
func (*ReceivedEmail) Forward ¶ added in v0.61.0
func (e *ReceivedEmail) Forward(ctx context.Context, to ...string) error
Forward will forward the recieved email to the given addresses.
func (*ReceivedEmail) GetBody ¶ added in v0.25.0
func (e *ReceivedEmail) GetBody() string
func (*ReceivedEmail) GetFrom ¶ added in v0.25.0
func (e *ReceivedEmail) GetFrom() *mail.Address
func (*ReceivedEmail) GetID ¶ added in v0.25.0
func (e *ReceivedEmail) GetID() string
func (*ReceivedEmail) GetSubject ¶ added in v0.25.0
func (e *ReceivedEmail) GetSubject() string
func (*ReceivedEmail) Timestamp ¶ added in v0.25.0
func (e *ReceivedEmail) Timestamp() time.Time
func (*ReceivedEmail) Valid ¶ added in v0.25.0
func (e *ReceivedEmail) Valid() error
Valid returns a non-nil error when the ReceivedEmail contains invalid fields.
type SendResponse ¶ added in v0.87.0
SendResponse contains details about an individual email sent status.
type TemplateOption ¶ added in v0.86.0
type TemplateOption func(*template)
TemplateOption is a functional option applied to a template.
func WithTemplateHTML ¶ added in v0.86.0
func WithTemplateHTML(data []byte) TemplateOption
WithTemplateHTML option sets the HTML format of the template.
func WithTemplateName ¶ added in v0.86.0
func WithTemplateName(name string) TemplateOption
WithTemplateName option sets the name of the template.
func WithTemplateSubject ¶ added in v0.86.0
func WithTemplateSubject(subject string) TemplateOption
WithTemplateSubject option sets the subject of the template.
func WithTemplateText ¶ added in v0.86.0
func WithTemplateText(data []byte) TemplateOption
WithTemplateText option sets the text format of the template.
func WithTemplateVariable ¶ added in v0.48.0
func WithTemplateVariable(key, dataType, fallback string) TemplateOption
WithTemplateVariable option sets a variable for use within the template.
type WebhookEmailReceieved ¶ added in v0.25.0
type WebhookEmailReceieved struct {
Type string `json:"type,omitempty"`
CreatedAt string `json:"created_at,omitempty"`
Data EmailRecieved `json:"data,omitempty"`
}