jbe/bsw@0: --[[-- jbe@5: success = -- true, if mail has been sent successfully, otherwise false jbe/bsw@0: net.send_mail{ jbe/bsw@0: envelope_from = envelope_from, -- envelope from address, not part of mail headers jbe/bsw@0: from = from, -- From header address or table with 'name' and 'address' fields jbe/bsw@0: sender = sender, -- Sender header address or table with 'name' and 'address' fields jbe/bsw@0: reply_to = reply_to, -- Reply-To header address or table with 'name' and 'address' fields jbe/bsw@0: to = to, -- To header address or table with 'name' and 'address' fields jbe/bsw@0: cc = cc, -- Cc header address or table with 'name' and 'address' fields jbe/bsw@0: bcc = bcc, -- Bcc header address or table with 'name' and 'address' fields jbe/bsw@0: subject = subject, -- subject of e-mail jbe/bsw@0: multipart = multipart_type, -- "alternative", "mixed", "related", or nil jbe/bsw@0: content_type = content_type, -- only for multipart == nil, defaults to "text/plain" jbe/bsw@0: binary = binary, -- allow full 8-bit content jbe/bsw@0: content = content or { -- content as lua-string, or table in case of multipart jbe/bsw@0: { jbe/bsw@0: multipart = multipart_type, jbe/bsw@0: ..., jbe/bsw@0: content = content or { jbe/bsw@0: {...}, ... jbe/bsw@0: } jbe/bsw@0: }, { jbe/bsw@0: ... jbe/bsw@0: }, jbe/bsw@0: ... jbe/bsw@0: } jbe/bsw@0: } jbe/bsw@0: jbe@5: This function sends a mail using the /usr/sbin/sendmail command. It returns true on success, otherwise false. jbe/bsw@0: jbe/bsw@0: --]]-- jbe/bsw@0: jbe/bsw@0: function net.send_mail(args) jbe/bsw@0: local mail jbe/bsw@0: if type(args) == "string" then jbe/bsw@0: mail = args jbe/bsw@0: else jbe/bsw@0: mail = encode.mime.mail(args) jbe/bsw@0: end jbe/bsw@0: local envelope_from = args.envelope_from jbe@444: local command = table.new(net._mail_config.command) jbe/bsw@0: if jbe/bsw@0: envelope_from and jbe@444: net._mail_config.envelope_from_option and jbe/bsw@0: string.find(envelope_from, "^[0-9A-Za-z%.-_@0-9A-Za-z%.-_]+$") jbe/bsw@0: then jbe@444: command[#command+1] = net._mail_config.envelope_from_option jbe@59: command[#command+1] = envelope_from jbe@5: end jbe@65: local stdout, errmsg, status = extos.pfilter(mail, table.unpack(command)) jbe@5: if not status then jbe@5: error("Error while calling sendmail: " .. errmsg) jbe/bsw@0: end jbe@5: if status == 0 then jbe@5: return true jbe@5: else jbe@5: return false jbe@5: end jbe/bsw@0: end