2012-06-18 9 views

risposta

20

ho finito attuazione me: https://github.com/scorredoira/email

uso è molto semplice:

m := email.NewMessage("Hi", "this is the body") 
m.From = "[email protected]" 
m.To = []string{"[email protected]"} 

err := m.Attach("picture.png") 
if err != nil { 
    log.Println(err) 
} 

err = email.Send("smtp.gmail.com:587", smtp.PlainAuth("", "user", "password", "smtp.gmail.com"), m) 
+0

Gmail non lo consente più. – qed

+1

@qed, ho appena provato con Gmail e funziona perfettamente. –

+2

@qed devi accedere alle impostazioni dell'account Google e in App/sicurezza abilitare l'accesso all'app non sicuro. Consiglio vivamente un account di posta elettronica per questo scopo. Se ti registri per gmail e hai meno di una certa età - penso che un 16 o 18 - non è necessario fornire un indirizzo email precedente al momento della registrazione. – anon58192932

3

Gli allegati nel protocollo SMTP vengono inviati utilizzando un messaggio MIME Multipart.

Quindi vi consiglio semplicemente

  • creare un MultipartMessage

  • impostare il testo nella parte pugno come TextMessage (con "Content-Type", "text/plain")

  • aggiungere le Allegati come parti utilizzando AddPart .

+0

Questo è quello che sto cercando ma per qualche motivo non riesco a farlo funzionare. Ho creato un problema che spiega i dettagli qui: https://github.com/sloonz/go-mime-message/issues/1 –

+0

Puoi dirmi a quale libreria ti riferisci ?. –

7

ho creato gomail per questo scopo. Supporta allegati e e-mail multipart e codifica di caratteri non ASCII. È ben documentato e testato.

Ecco un esempio:

package main 

func main() { 
    m := gomail.NewMessage() 
    m.SetHeader("From", "[email protected]") 
    m.SetHeader("To", "[email protected]", "[email protected]") 
    m.SetAddressHeader("Cc", "[email protected]", "Dan") 
    m.SetHeader("Subject", "Hello!") 
    m.SetBody("text/html", "Hello <b>Bob</b> and <i>Cora</i>!") 
    m.Attach("/home/Alex/lolcat.jpg") 

    d := gomail.NewPlainDialer("smtp.example.com", 587, "user", "123456") 

    // Send the email to Bob, Cora and Dan. 
    if err := d.DialAndSend(m); err != nil { 
     panic(err) 
    } 
} 
6

preferisco usare https://github.com/jordan-wright/email per scopi e-mail. Supporta gli allegati.

E-mail per gli esseri umani

Il package email è progettato per essere semplice da usare, ma abbastanza flessibile in modo da non essere restrittiva. L'obiettivo è fornire un'interfaccia email per gli esseri umani.

Il pacchetto e-mail supporta attualmente i seguenti:

  • Da, A, i campi Ccn e Cc
  • indirizzi
  • Email sia "[email protected]" e "Nome Cognome" formato
  • di testo e HTML corpo del messaggio
  • Allegati
  • conferme di lettura
  • intestazioni personalizzate
  • Altro a venire!
+1

questo è probabilmente il più semplice: 3 – Kokizzu

Problemi correlati