diff options
author | Diego Nehab <diego@tecgraf.puc-rio.br> | 2004-06-04 15:15:45 +0000 |
---|---|---|
committer | Diego Nehab <diego@tecgraf.puc-rio.br> | 2004-06-04 15:15:45 +0000 |
commit | 9ed7f955e5fc69af9bf1794fa2c8cd227981ba24 (patch) | |
tree | 8c3521366ef84f534bbec278437be7ea24e2ac1c /src/smtp.lua | |
parent | 63d60223da9de60f873ca08a25dbd9512c998929 (diff) | |
download | luasocket-9ed7f955e5fc69af9bf1794fa2c8cd227981ba24.tar.gz luasocket-9ed7f955e5fc69af9bf1794fa2c8cd227981ba24.tar.bz2 luasocket-9ed7f955e5fc69af9bf1794fa2c8cd227981ba24.zip |
Só pra não perder se der merda.
Diffstat (limited to 'src/smtp.lua')
-rw-r--r-- | src/smtp.lua | 41 |
1 files changed, 26 insertions, 15 deletions
diff --git a/src/smtp.lua b/src/smtp.lua index 3108395..7ae99a5 100644 --- a/src/smtp.lua +++ b/src/smtp.lua | |||
@@ -5,22 +5,28 @@ | |||
5 | -- Conforming to RFC 2821 | 5 | -- Conforming to RFC 2821 |
6 | -- RCS ID: $Id$ | 6 | -- RCS ID: $Id$ |
7 | ----------------------------------------------------------------------------- | 7 | ----------------------------------------------------------------------------- |
8 | -- make sure LuaSocket is loaded | ||
9 | require("socket") | ||
10 | -- get LuaSocket namespace | ||
11 | local socket = _G[LUASOCKET_LIBNAME] | ||
12 | 8 | ||
13 | require("ltn12") | 9 | ----------------------------------------------------------------------------- |
14 | require("tp") | 10 | -- Load SMTP from dynamic library |
11 | -- Comment these lines if you are loading static | ||
12 | ----------------------------------------------------------------------------- | ||
13 | local open = assert(loadlib("smtp", "luaopen_smtp")) | ||
14 | local smtp = assert(open()) | ||
15 | |||
16 | ----------------------------------------------------------------------------- | ||
17 | -- Load other required modules | ||
18 | ----------------------------------------------------------------------------- | ||
19 | local socket = require("socket") | ||
20 | local ltn12 = require("ltn12") | ||
21 | local tp = require("tp") | ||
15 | 22 | ||
16 | -- create smtp namespace inside LuaSocket namespace | 23 | ----------------------------------------------------------------------------- |
17 | local smtp = socket.smtp or {} | 24 | -- Setup namespace |
18 | socket.smtp = smtp | 25 | ----------------------------------------------------------------------------- |
19 | -- make all module globals fall into smtp namespace | 26 | -- make all module globals fall into smtp namespace |
20 | setmetatable(smtp, { __index = _G }) | 27 | setmetatable(smtp, { __index = _G }) |
21 | setfenv(1, smtp) | 28 | setfenv(1, smtp) |
22 | 29 | ||
23 | |||
24 | -- default server used to send e-mails | 30 | -- default server used to send e-mails |
25 | SERVER = "localhost" | 31 | SERVER = "localhost" |
26 | -- default port | 32 | -- default port |
@@ -89,7 +95,7 @@ end | |||
89 | 95 | ||
90 | function open(server, port) | 96 | function open(server, port) |
91 | print(server or SERVER, port or PORT) | 97 | print(server or SERVER, port or PORT) |
92 | local tp, error = socket.tp.connect(server or SERVER, port or PORT) | 98 | local tp, error = tp.connect(server or SERVER, port or PORT) |
93 | if not tp then return nil, error end | 99 | if not tp then return nil, error end |
94 | return setmetatable({tp = tp}, metat) | 100 | return setmetatable({tp = tp}, metat) |
95 | end | 101 | end |
@@ -176,11 +182,16 @@ end | |||
176 | 182 | ||
177 | -- set defaul headers | 183 | -- set defaul headers |
178 | local function adjust_headers(mesgt) | 184 | local function adjust_headers(mesgt) |
179 | mesgt.headers = mesgt.headers or {} | 185 | local lower = {} |
180 | mesgt.headers["mime-version"] = "1.0" | 186 | for i,v in (mesgt or lower) do |
181 | mesgt.headers["date"] = mesgt.headers["date"] or | 187 | lower[string.lower(i)] = v |
188 | end | ||
189 | lower["date"] = lower["date"] or | ||
182 | os.date("!%a, %d %b %Y %H:%M:%S ") .. (mesgt.zone or ZONE) | 190 | os.date("!%a, %d %b %Y %H:%M:%S ") .. (mesgt.zone or ZONE) |
183 | mesgt.headers["x-mailer"] = mesgt.headers["x-mailer"] or socket.version | 191 | lower["x-mailer"] = lower["x-mailer"] or socket.version |
192 | -- this can't be overriden | ||
193 | lower["mime-version"] = "1.0" | ||
194 | mesgt.headers = lower | ||
184 | end | 195 | end |
185 | 196 | ||
186 | function message(mesgt) | 197 | function message(mesgt) |