Documentation
¶
Index ¶
- type Address
- type BaseMailer
- type LogMailer
- type Logger
- type Mailer
- type Message
- func (m *Message) Attach(filePath string) *Message
- func (m *Message) Bcc(email string, name string) *Message
- func (m *Message) Body(body string) *Message
- func (m *Message) Cc(email string, name string) *Message
- func (m *Message) From(email string, name string) *Message
- func (m *Message) GetAttachments() []string
- func (m *Message) GetBcc() []Address
- func (m *Message) GetBody() string
- func (m *Message) GetCc() []Address
- func (m *Message) GetDate() time.Time
- func (m *Message) GetFrom() Address
- func (m *Message) GetHeaders() map[string]string
- func (m *Message) GetHtmlBody() string
- func (m *Message) GetPriority() Priority
- func (m *Message) GetReplyTo() *Address
- func (m *Message) GetSubject() string
- func (m *Message) GetTo() []Address
- func (m *Message) Header(key, value string) *Message
- func (m *Message) Html(html string) *Message
- func (m *Message) Priority(priority Priority) *Message
- func (m *Message) ReplyTo(email string, name string) *Message
- func (m *Message) Subject(subject string) *Message
- func (m *Message) To(email string, name string) *Message
- func (m *Message) Validate() error
- type Priority
- type SMTPConfig
- type SMTPMailer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseMailer ¶
type BaseMailer struct {
// contains filtered or unexported fields
}
BaseMailer, tüm mailer implementasyonları için temel yapı.
Bu yapı ortak fonksiyonları sağlar, her driver bu yapıyı embed eder.
func NewBaseMailer ¶
func NewBaseMailer(logger Logger) *BaseMailer
NewBaseMailer, yeni bir BaseMailer oluşturur.
func (*BaseMailer) LogError ¶
func (m *BaseMailer) LogError(message *Message, err error)
LogError, hata oluştuğunda loglar.
func (*BaseMailer) LogSending ¶
func (m *BaseMailer) LogSending(message *Message)
LogSending, gönderim işlemini loglar.
func (*BaseMailer) LogSuccess ¶
func (m *BaseMailer) LogSuccess(message *Message)
LogSuccess, başarılı gönderimi loglar.
func (*BaseMailer) ValidateMessage ¶
func (m *BaseMailer) ValidateMessage(message *Message) error
ValidateMessage, mesajı validate eder.
type LogMailer ¶
type LogMailer struct {
*BaseMailer
}
LogMailer, email'leri göndermek yerine loglara yazan mailer.
Development ve test ortamında kullanışlıdır. Gerçek email gönderilmez, sadece log'a yazılır.
Kullanım:
mailer := mail.NewLogMailer(logger) err := mailer.Send(message)
func NewLogMailer ¶
NewLogMailer, yeni bir LogMailer oluşturur.
Parametre:
- logger: Log yazımı için logger
Döndürür:
- *LogMailer: Yeni LogMailer instance
Örnek:
mailer := mail.NewLogMailer(log.Default())
type Logger ¶
type Logger interface {
Printf(format string, v ...interface{})
Println(v ...interface{})
}
Logger interface - dependency injection için
type Mailer ¶
type Mailer interface {
// Send, bir email mesajı gönderir.
//
// Parametre:
// - message: Gönderilecek mesaj
//
// Döndürür:
// - error: Gönderim başarısızsa hata
Send(message *Message) error
// SendAsync, email'i queue'ya ekleyerek asenkron gönderir.
// Queue sistemi varsa kullanılır, yoksa senkron Send() çağrılır.
//
// Parametre:
// - message: Gönderilecek mesaj
//
// Döndürür:
// - error: Queue'ya ekleme başarısızsa hata
SendAsync(message *Message) error
}
Mailer, email gönderim interface'i.
Farklı driver'lar (SMTP, Mailgun, SendGrid, SES, vb.) bu interface'i implement ederek sistemle entegre olabilir.
type Message ¶
type Message struct {
// contains filtered or unexported fields
}
Message, email mesajını temsil eder.
Fluent API ile zincirleme kullanım:
msg := mail.NewMessage().
To("user@example.com").
Subject("Hello").
Body("Welcome!")
func NewMessage ¶
func NewMessage() *Message
NewMessage, yeni bir Message instance'ı oluşturur.
Döndürür:
- *Message: Yeni message instance
Örnek:
msg := mail.NewMessage()
func (*Message) Attach ¶
Attach, dosya ekler.
Parametre:
- filePath: Eklenecek dosyanın yolu
Döndürür:
- *Message: Zincirleme için kendi instance'ını döner
Örnek:
msg.Attach("/path/to/document.pdf")
msg.Attach("/path/to/image.jpg")
func (*Message) Body ¶
Body, plain text email gövdesini ayarlar.
Parametre:
- body: Plain text içerik
Döndürür:
- *Message: Zincirleme için kendi instance'ını döner
Örnek:
msg.Body("Welcome to our platform!\n\nThank you for joining.")
func (*Message) From ¶
From, gönderici adresini ayarlar.
Parametreler:
- email: Gönderici email adresi
- name: Gönderici adı (opsiyonel, boş string olabilir)
Döndürür:
- *Message: Zincirleme için kendi instance'ını döner
Örnek:
msg.From("noreply@conduit.com", "Conduit Team")
func (*Message) GetAttachments ¶
GetAttachments, ekleri döndürür.
func (*Message) GetHeaders ¶
GetHeaders, özel header'ları döndürür.
func (*Message) GetHtmlBody ¶
GetHtmlBody, HTML gövdeyi döndürür.
func (*Message) GetPriority ¶
GetPriority, önceliği döndürür.
func (*Message) GetReplyTo ¶
GetReplyTo, yanıt adresini döndürür.
func (*Message) Header ¶
Header, özel header ekler.
Parametreler:
- key: Header adı
- value: Header değeri
Döndürür:
- *Message: Zincirleme için kendi instance'ını döner
Örnek:
msg.Header("X-Custom-Header", "custom-value")
msg.Header("X-Campaign-ID", "summer-2024")
func (*Message) Html ¶
Html, HTML email gövdesini ayarlar.
Parametre:
- html: HTML içerik
Döndürür:
- *Message: Zincirleme için kendi instance'ını döner
Örnek:
msg.Html("<h1>Welcome!</h1><p>Thank you for joining.</p>")
Güvenlik Notu: HTML içeriği için XSS koruması yapılmaz, güvenilir kaynaklardan HTML kullanın veya template engine kullanın.
func (*Message) Priority ¶
Priority, email önceliğini ayarlar.
Parametre:
- priority: Öncelik seviyesi (Low, Normal, High)
Döndürür:
- *Message: Zincirleme için kendi instance'ını döner
Örnek:
msg.Priority(mail.PriorityHigh)
func (*Message) Subject ¶
Subject, email konusunu ayarlar.
Parametre:
- subject: Email konusu
Döndürür:
- *Message: Zincirleme için kendi instance'ını döner
Örnek:
msg.Subject("Welcome to Conduit!")
type SMTPConfig ¶
type SMTPConfig struct {
Host string // SMTP sunucu adresi (örn: smtp.gmail.com)
Port int // SMTP port (25, 587, 465)
Username string // SMTP kullanıcı adı
Password string // SMTP şifre
From Address // Varsayılan gönderici adresi
UseTLS bool // TLS kullanılsın mı (587 port için true)
Timeout time.Duration // Bağlantı timeout süresi (varsayılan: 30s)
}
SMTPConfig, SMTP bağlantı ayarlarını içerir.
type SMTPMailer ¶
type SMTPMailer struct {
*BaseMailer
// contains filtered or unexported fields
}
SMTPMailer, SMTP ile email gönderen mailer.
func NewSMTPMailer ¶
func NewSMTPMailer(config *SMTPConfig, logger Logger) *SMTPMailer
NewSMTPMailer, yeni bir SMTP mailer oluşturur.
Parametreler:
- config: SMTP konfigürasyonu
- logger: Logger instance
Döndürür:
- *SMTPMailer: Yeni SMTP mailer
Örnek (Gmail):
config := &mail.SMTPConfig{
Host: "smtp.gmail.com",
Port: 587,
Username: "your@gmail.com",
Password: "app-password",
UseTLS: true,
}
mailer := mail.NewSMTPMailer(config, logger)
Örnek (Mailhog - Development):
config := &mail.SMTPConfig{
Host: "localhost",
Port: 1025,
From: mail.Address{Email: "dev@conduit.local"},
}
mailer := mail.NewSMTPMailer(config, logger)
func (*SMTPMailer) Send ¶
func (m *SMTPMailer) Send(message *Message) error
Send, email'i SMTP üzerinden gönderir.
func (*SMTPMailer) SendAsync ¶
func (m *SMTPMailer) SendAsync(message *Message) error
SendAsync, queue yoksa senkron gönderir. Queue integration yapıldığında bu metod güncellenecek.