summaryrefslogtreecommitdiff
path: root/tex/context/base/util-soc.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/util-soc.lua')
-rw-r--r--tex/context/base/util-soc.lua186
1 files changed, 93 insertions, 93 deletions
diff --git a/tex/context/base/util-soc.lua b/tex/context/base/util-soc.lua
index 30301c510..ba2f7b507 100644
--- a/tex/context/base/util-soc.lua
+++ b/tex/context/base/util-soc.lua
@@ -1,93 +1,93 @@
-if not modules then modules = { } end modules ['util-soc'] = {
- version = 1.001,
- comment = "support for sockets / protocols",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-local format = string.format
-
-local smtp = require("socket.smtp")
-local ltn12 = require("ltn12")
-local mime = require("mime")
-
-local mail = utilities.mail or { }
-utilities.mail = mail
-
-local report_mail = logs.reporter("mail")
-
-function mail.send(specification)
- local presets = specification.presets
- if presets then
- table.setmetatableindex(specification,presets)
- end
- local server = specification.server or ""
- if not server then
- report_mail("no server specified")
- return false
- end
- local to = specification.to or specification.recepient or ""
- if to == "" then
- report_mail("no recepient specified")
- return false
- end
- local from = specification.from or specification.sender or ""
- if from == "" then
- report_mail("no sender specified")
- return false
- end
- local message = { }
- local body = specification.body
- if body then
- message[#message+1] = {
- body = body
- }
- end
- local files = specification.files
- if files then
- for i=1,#files do
- local filename = files[i]
- local handle = io.open(filename, "rb")
- if handle then
- report_mail("attaching file %a",filename)
- message[#message+1] = {
- headers = {
- ["content-type"] = format('application/pdf; name="%s"',filename),
- ["content-disposition"] = format('attachment; filename="%s"',filename),
- ["content-description"] = format('file: %s',filename),
- ["content-transfer-encoding"] = "BASE64"
- },
- body = ltn12.source.chain(
- ltn12.source.file(handle),
- ltn12.filter.chain(mime.encode("base64"),mime.wrap())
- )
- }
- else
- report_mail("file %a not found",filename)
- end
- end
- end
- local result, detail = smtp.send {
- server = specification.server,
- port = specification.port,
- user = specification.user,
- password = specification.password,
- from = from,
- rcpt = to,
- source = smtp.message {
- headers = {
- to = to,
- from = from,
- cc = specification.cc,
- subject = specification.subject or "no subject",
- },
- body = message
- },
- }
- if detail then
- report_mail("error: %s",detail)
- else
- report_mail("message sent")
- end
-end
+if not modules then modules = { } end modules ['util-soc'] = {
+ version = 1.001,
+ comment = "support for sockets / protocols",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+local format = string.format
+
+local smtp = require("socket.smtp")
+local ltn12 = require("ltn12")
+local mime = require("mime")
+
+local mail = utilities.mail or { }
+utilities.mail = mail
+
+local report_mail = logs.reporter("mail")
+
+function mail.send(specification)
+ local presets = specification.presets
+ if presets then
+ table.setmetatableindex(specification,presets)
+ end
+ local server = specification.server or ""
+ if not server then
+ report_mail("no server specified")
+ return false
+ end
+ local to = specification.to or specification.recepient or ""
+ if to == "" then
+ report_mail("no recepient specified")
+ return false
+ end
+ local from = specification.from or specification.sender or ""
+ if from == "" then
+ report_mail("no sender specified")
+ return false
+ end
+ local message = { }
+ local body = specification.body
+ if body then
+ message[#message+1] = {
+ body = body
+ }
+ end
+ local files = specification.files
+ if files then
+ for i=1,#files do
+ local filename = files[i]
+ local handle = io.open(filename, "rb")
+ if handle then
+ report_mail("attaching file %a",filename)
+ message[#message+1] = {
+ headers = {
+ ["content-type"] = format('application/pdf; name="%s"',filename),
+ ["content-disposition"] = format('attachment; filename="%s"',filename),
+ ["content-description"] = format('file: %s',filename),
+ ["content-transfer-encoding"] = "BASE64"
+ },
+ body = ltn12.source.chain(
+ ltn12.source.file(handle),
+ ltn12.filter.chain(mime.encode("base64"),mime.wrap())
+ )
+ }
+ else
+ report_mail("file %a not found",filename)
+ end
+ end
+ end
+ local result, detail = smtp.send {
+ server = specification.server,
+ port = specification.port,
+ user = specification.user,
+ password = specification.password,
+ from = from,
+ rcpt = to,
+ source = smtp.message {
+ headers = {
+ to = to,
+ from = from,
+ cc = specification.cc,
+ subject = specification.subject or "no subject",
+ },
+ body = message
+ },
+ }
+ if detail then
+ report_mail("error: %s",detail)
+ else
+ report_mail("message sent")
+ end
+end