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
|