aboutsummaryrefslogtreecommitdiff
path: root/src/smtp.lua
diff options
context:
space:
mode:
authorDiego Nehab <diego@tecgraf.puc-rio.br>2004-06-04 15:15:45 +0000
committerDiego Nehab <diego@tecgraf.puc-rio.br>2004-06-04 15:15:45 +0000
commit9ed7f955e5fc69af9bf1794fa2c8cd227981ba24 (patch)
tree8c3521366ef84f534bbec278437be7ea24e2ac1c /src/smtp.lua
parent63d60223da9de60f873ca08a25dbd9512c998929 (diff)
downloadluasocket-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.lua41
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
9require("socket")
10-- get LuaSocket namespace
11local socket = _G[LUASOCKET_LIBNAME]
12 8
13require("ltn12") 9-----------------------------------------------------------------------------
14require("tp") 10-- Load SMTP from dynamic library
11-- Comment these lines if you are loading static
12-----------------------------------------------------------------------------
13local open = assert(loadlib("smtp", "luaopen_smtp"))
14local smtp = assert(open())
15
16-----------------------------------------------------------------------------
17-- Load other required modules
18-----------------------------------------------------------------------------
19local socket = require("socket")
20local ltn12 = require("ltn12")
21local tp = require("tp")
15 22
16-- create smtp namespace inside LuaSocket namespace 23-----------------------------------------------------------------------------
17local smtp = socket.smtp or {} 24-- Setup namespace
18socket.smtp = smtp 25-----------------------------------------------------------------------------
19-- make all module globals fall into smtp namespace 26-- make all module globals fall into smtp namespace
20setmetatable(smtp, { __index = _G }) 27setmetatable(smtp, { __index = _G })
21setfenv(1, smtp) 28setfenv(1, smtp)
22 29
23
24-- default server used to send e-mails 30-- default server used to send e-mails
25SERVER = "localhost" 31SERVER = "localhost"
26-- default port 32-- default port
@@ -89,7 +95,7 @@ end
89 95
90function open(server, port) 96function 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)
95end 101end
@@ -176,11 +182,16 @@ end
176 182
177-- set defaul headers 183-- set defaul headers
178local function adjust_headers(mesgt) 184local 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
184end 195end
185 196
186function message(mesgt) 197function message(mesgt)