MCPcopy
hub / github.com/pocketbase/pocketbase / send

Method send

tools/mailer/sendmail.go:43–82  ·  view source on GitHub ↗
(m *Message)

Source from the content-addressed store, hash-verified

41}
42
43func (c *Sendmail) send(m *Message) error {
44 toAddresses := addressesToStrings(m.To, false)
45
46 headers := make(http.Header)
47 headers.Set("Subject", mime.QEncoding.Encode("utf-8", m.Subject))
48 headers.Set("From", m.From.String())
49 headers.Set("Content-Type", "text/html; charset=UTF-8")
50 headers.Set("To", strings.Join(toAddresses, ","))
51
52 cmdPath, err := findSendmailPath()
53 if err != nil {
54 return err
55 }
56
57 var buffer bytes.Buffer
58
59 // write
60 // ---
61 if err := headers.Write(&buffer); err != nil {
62 return err
63 }
64 if _, err := buffer.Write([]byte("\r\n")); err != nil {
65 return err
66 }
67 if m.HTML != "" {
68 if _, err := buffer.Write([]byte(m.HTML)); err != nil {
69 return err
70 }
71 } else {
72 if _, err := buffer.Write([]byte(m.Text)); err != nil {
73 return err
74 }
75 }
76 // ---
77
78 sendmail := exec.Command(cmdPath, strings.Join(toAddresses, ","))
79 sendmail.Stdin = &buffer
80
81 return sendmail.Run()
82}
83
84func findSendmailPath() (string, error) {
85 options := []string{

Callers 1

SendMethod · 0.95

Calls 7

addressesToStringsFunction · 0.85
findSendmailPathFunction · 0.85
EncodeMethod · 0.80
SetMethod · 0.65
StringMethod · 0.45
WriteMethod · 0.45
RunMethod · 0.45

Tested by

no test coverage detected