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) |
