2012-06-18 39 views

Trả lời

20

tôi đã kết thúc việc thực hiện nó bản thân mình: https://github.com/scorredoira/email

Cách sử dụng rất đơn giản:

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 không cho phép điều này nữa. – qed

+1

@qed, tôi vừa mới thử nghiệm với Gmail và nó hoạt động tốt. –

+2

@qed bạn cần phải đi vào cài đặt tài khoản google của mình và trong ứng dụng/bảo mật cho phép truy cập ứng dụng không an toàn. Tôi rất khuyên bạn nên sử dụng một tài khoản email gửi đi cho mục đích này. Nếu bạn đăng ký gmail và bạn dưới một độ tuổi nhất định - Tôi nghĩ là 16 hoặc 18 - bạn không phải cung cấp địa chỉ email trước đó khi đăng ký. – anon58192932

3

Các tệp đính kèm trong giao thức SMTP được gửi bằng thông điệp Multipart MIME.

Vì vậy, tôi đề nghị bạn chỉ đơn giản là

  • tạo MultipartMessage

  • thiết lập văn bản của bạn ở phần nắm tay như một TextMessage (với "Content-Type", "text/plain")

  • thêm tệp đính kèm của bạn như các bộ phận sử dụng AddPart .

+0

Đó là những gì tôi đang cố gắng nhưng vì lý do nào đó tôi không thể làm cho nó hoạt động. Tôi đã tạo một vấn đề giải thích chi tiết tại đây: https://github.com/sloonz/go-mime-message/issues/1 –

+0

Bạn có thể vui lòng cho tôi biết bạn đang giới thiệu thư viện nào không ?. –

7

Tôi tạo ra gomail cho mục đích này. Nó hỗ trợ các phần đính kèm cũng như ghép các email và mã hóa các ký tự không phải ASCII. Nó là tài liệu và thử nghiệm.

Dưới đây là một ví dụ:

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

Tôi thích sử dụng cho các mục đích https://github.com/jordan-wright/email email. Nó hỗ trợ tệp đính kèm.

Email cho con người

Các gói phần mềm thư điện tử được thiết kế để đơn giản để sử dụng, nhưng cũng đủ linh hoạt như vậy là không được hạn chế. Mục tiêu là cung cấp giao diện email cho con người.

Các gói phần mềm email hiện hỗ trợ như sau:

  • Từ, Tổ, Bcc và Cc
  • địa chỉ
  • Email trong cả hai định dạng "[email protected]" và "Đầu cuối"
  • văn bản và HTML nhắn Body
  • đính kèm
  • Xác nhận đã đọc
  • Tiêu đề tùy chỉnh
  • Thêm nữa!
+1

điều này có lẽ là dễ nhất: 3 – Kokizzu

Các vấn đề liên quan