webmcp

annotate framework/env/net/send_mail.lua @ 0:9fdfb27f8e67

Version 1.0.0
author jbe/bsw
date Sun Oct 25 12:00:00 2009 +0100 (2009-10-25)
parents
children 4fb227630097
rev   line source
jbe/bsw@0 1 --[[--
jbe/bsw@0 2 net.send_mail{
jbe/bsw@0 3 envelope_from = envelope_from, -- envelope from address, not part of mail headers
jbe/bsw@0 4 from = from, -- From header address or table with 'name' and 'address' fields
jbe/bsw@0 5 sender = sender, -- Sender header address or table with 'name' and 'address' fields
jbe/bsw@0 6 reply_to = reply_to, -- Reply-To header address or table with 'name' and 'address' fields
jbe/bsw@0 7 to = to, -- To header address or table with 'name' and 'address' fields
jbe/bsw@0 8 cc = cc, -- Cc header address or table with 'name' and 'address' fields
jbe/bsw@0 9 bcc = bcc, -- Bcc header address or table with 'name' and 'address' fields
jbe/bsw@0 10 subject = subject, -- subject of e-mail
jbe/bsw@0 11 multipart = multipart_type, -- "alternative", "mixed", "related", or nil
jbe/bsw@0 12 content_type = content_type, -- only for multipart == nil, defaults to "text/plain"
jbe/bsw@0 13 binary = binary, -- allow full 8-bit content
jbe/bsw@0 14 content = content or { -- content as lua-string, or table in case of multipart
jbe/bsw@0 15 {
jbe/bsw@0 16 multipart = multipart_type,
jbe/bsw@0 17 ...,
jbe/bsw@0 18 content = content or {
jbe/bsw@0 19 {...}, ...
jbe/bsw@0 20 }
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 This function sends a mail using the /usr/sbin/sendmail command.
jbe/bsw@0 29
jbe/bsw@0 30 --]]--
jbe/bsw@0 31
jbe/bsw@0 32 function net.send_mail(args)
jbe/bsw@0 33 local mail
jbe/bsw@0 34 if type(args) == "string" then
jbe/bsw@0 35 mail = args
jbe/bsw@0 36 else
jbe/bsw@0 37 mail = encode.mime.mail(args)
jbe/bsw@0 38 end
jbe/bsw@0 39 local envelope_from = args.envelope_from
jbe/bsw@0 40 local command
jbe/bsw@0 41 if
jbe/bsw@0 42 envelope_from and
jbe/bsw@0 43 string.find(envelope_from, "^[0-9A-Za-z%.-_@0-9A-Za-z%.-_]+$")
jbe/bsw@0 44 then
jbe/bsw@0 45 command =
jbe/bsw@0 46 "/usr/sbin/sendmail -t -i -f " ..
jbe/bsw@0 47 envelope_from ..
jbe/bsw@0 48 " > /dev/null 2> /dev/null"
jbe/bsw@0 49 else
jbe/bsw@0 50 command = "/usr/sbin/sendmail -t -i > /dev/null 2> /dev/null"
jbe/bsw@0 51 end
jbe/bsw@0 52 trace.debug(command)
jbe/bsw@0 53 -- TODO: use pfilter
jbe/bsw@0 54 local sendmail = assert(io.popen(command, "w"))
jbe/bsw@0 55 sendmail:write(mail)
jbe/bsw@0 56 sendmail:close()
jbe/bsw@0 57 end

Impressum / About Us