webmcp

annotate framework/env/net/send_mail.lua @ 558:b7596f5158d4

Added argument "raw_headers" to net.send_mail(...)
author jbe
date Tue Jun 09 13:13:36 2020 +0200 (2020-06-09)
parents 5d307886bd89
children
rev   line source
jbe/bsw@0 1 --[[--
jbe@5 2 success = -- true, if mail has been sent successfully, otherwise false
jbe/bsw@0 3 net.send_mail{
jbe/bsw@0 4 envelope_from = envelope_from, -- envelope from address, not part of mail headers
jbe/bsw@0 5 from = from, -- From header address or table with 'name' and 'address' fields
jbe/bsw@0 6 sender = sender, -- Sender header address or table with 'name' and 'address' fields
jbe/bsw@0 7 reply_to = reply_to, -- Reply-To header address or table with 'name' and 'address' fields
jbe/bsw@0 8 to = to, -- To header address or table with 'name' and 'address' fields
jbe/bsw@0 9 cc = cc, -- Cc header address or table with 'name' and 'address' fields
jbe/bsw@0 10 bcc = bcc, -- Bcc header address or table with 'name' and 'address' fields
jbe/bsw@0 11 subject = subject, -- subject of e-mail
jbe@558 12 raw_headers = raw_headers, -- sequence of raw header lines
jbe/bsw@0 13 multipart = multipart_type, -- "alternative", "mixed", "related", or nil
jbe/bsw@0 14 content_type = content_type, -- only for multipart == nil, defaults to "text/plain"
jbe/bsw@0 15 binary = binary, -- allow full 8-bit content
jbe/bsw@0 16 content = content or { -- content as lua-string, or table in case of multipart
jbe/bsw@0 17 {
jbe/bsw@0 18 multipart = multipart_type,
jbe/bsw@0 19 ...,
jbe/bsw@0 20 content = content or {
jbe/bsw@0 21 {...}, ...
jbe/bsw@0 22 }
jbe/bsw@0 23 }, {
jbe/bsw@0 24 ...
jbe/bsw@0 25 },
jbe/bsw@0 26 ...
jbe/bsw@0 27 }
jbe/bsw@0 28 }
jbe/bsw@0 29
jbe@5 30 This function sends a mail using the /usr/sbin/sendmail command. It returns true on success, otherwise false.
jbe/bsw@0 31
jbe/bsw@0 32 --]]--
jbe/bsw@0 33
jbe/bsw@0 34 function net.send_mail(args)
jbe/bsw@0 35 local mail
jbe/bsw@0 36 if type(args) == "string" then
jbe/bsw@0 37 mail = args
jbe/bsw@0 38 else
jbe/bsw@0 39 mail = encode.mime.mail(args)
jbe/bsw@0 40 end
jbe/bsw@0 41 local envelope_from = args.envelope_from
jbe@444 42 local command = table.new(net._mail_config.command)
jbe/bsw@0 43 if
jbe/bsw@0 44 envelope_from and
jbe@444 45 net._mail_config.envelope_from_option and
jbe/bsw@0 46 string.find(envelope_from, "^[0-9A-Za-z%.-_@0-9A-Za-z%.-_]+$")
jbe/bsw@0 47 then
jbe@444 48 command[#command+1] = net._mail_config.envelope_from_option
jbe@59 49 command[#command+1] = envelope_from
jbe@5 50 end
jbe@65 51 local stdout, errmsg, status = extos.pfilter(mail, table.unpack(command))
jbe@5 52 if not status then
jbe@5 53 error("Error while calling sendmail: " .. errmsg)
jbe/bsw@0 54 end
jbe@5 55 if status == 0 then
jbe@5 56 return true
jbe@5 57 else
jbe@5 58 return false
jbe@5 59 end
jbe/bsw@0 60 end

Impressum / About Us