-
Notifications
You must be signed in to change notification settings - Fork 581
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
There's a way to efficiently send more than one mail in one connection? #10
Comments
You can already do it by using But I can also add new methods so you can do something like that: c := mailer.Connect()
defer c.Close()
for _, msg := range list {
if err := c.Send(msg); err != nil {
panic(err)
}
} Would that fits your need? |
Sorry, I wasn't able to play with your library until now! :) Yep, this would be a great addition to this package! I'll try to implement a custom email-sending function. Not sure when btw... Thanks!!! |
+1 |
I will do it for Gomail v2 (which should be released in August as Go 1.5). In the meantime you can already do it by implementing your own email-sending function and using |
Gomail v2 will handle sending many mails on one connection. You can already try the unstable version and tell me if it is fine: package main
import (
"fmt"
"gopkg.in/gomail.v2-unstable"
)
func main() {
messages := make([]*gomail.Message, 10)
for i := 0; i < len(messages); i++ {
m := gomail.NewMessage()
m.SetHeader("From", "from@example.com")
m.SetHeader("To", "to@example.com")
m.SetHeader("Subject", fmt.Sprintf("Test %d", i))
m.SetBody("text/html", fmt.Sprintf("Test %d", i))
messages[i] = m
}
d := gomail.NewPlainDialer("smtp.example.com", "user", "123456", 587)
if err := d.DialAndSend(messages...); err != nil {
panic(err)
}
} |
Awesome! 👍 |
I made a quick review of your code and I think you open close a connection for each
Send
(https://github.com/go-gomail/gomail/blob/master/send.go#L22).I want to implement a job to send emails from a queue in bulk, but reusing the connection to be as more efficient as possible.
I miss something from your API?
Thanks!
The text was updated successfully, but these errors were encountered: