Example #1
0
// Create an array of messages with the specified body.
func (e *Email) newMessages(s *queue.Storage, from, body string) ([]*queue.Message, error) {
	addresses := append(append(e.To, e.Cc...), e.Bcc...)
	m, err := GroupAddressesByHost(addresses)
	if err != nil {
		return nil, err
	}
	messages := make([]*queue.Message, 0, 1)
	for h, to := range m {
		msg := &queue.Message{
			Host: h,
			From: from,
			To:   to,
		}
		if err := s.SaveMessage(msg, body); err != nil {
			return nil, err
		}
		messages = append(messages, msg)
	}
	return messages, nil
}