email - que - lua envía correo con cuenta de gmail
limite de envio de correos gmail (2)
Quiero enviar un correo electrónico con mi cuenta de Gmail, lo probé, pero no tuve suerte, ¿alguien me puede dar una muestra? Cualquier sugerencia sera apreciada. Gracias
Usé la API de lualogging, el código es
require"logging.email"
logger = logging.email {
rcpt = "[email protected]",
from = "[email protected]",
user = "[email protected]",
password = *****,
server = "smtp.gmail.com",
port = 587,
headers = {
rcpt = "[email protected]",
from = "[email protected]",
subject = "[%level] logging.email test",
},
}
logger:error("error!")
Debería mirar LuaSocket , especialmente su módulo SMTP, que puede usarse para enviar correos usando su cuenta de GMail. También necesita una biblioteca SSL, uso LuaSec, que fue diseñado para usarse junto con LuaSocket. Este es el código que utilicé con éxito para enviar correos electrónicos usando mi cuenta de GMail:
-- Michal Kottman, 2011, public domain
local socket = require ''socket''
local smtp = require ''socket.smtp''
local ssl = require ''ssl''
local https = require ''ssl.https''
local ltn12 = require ''ltn12''
function sslCreate()
local sock = socket.tcp()
return setmetatable({
connect = function(_, host, port)
local r, e = sock:connect(host, port)
if not r then return r, e end
sock = ssl.wrap(sock, {mode=''client'', protocol=''tlsv1''})
return sock:dohandshake()
end
}, {
__index = function(t,n)
return function(_, ...)
return sock[n](sock, ...)
end
end
})
end
function sendMessage(subject, body)
local msg = {
headers = {
to = ''Your Target <target email>'',
subject = subject
},
body = body
}
local ok, err = smtp.send {
from = ''<your email>'',
rcpt = ''<target email>'',
source = smtp.message(msg),
user = ''username'',
password = ''password'',
server = ''smtp.gmail.com'',
port = 465,
create = sslCreate
}
if not ok then
print("Mail send failed", err) -- better error handling required
end
end
El código de Michal Kottman funciona correctamente pero falla (para mí) cuando el servidor de tnt funciona en el puerto 587, usando una forma bastante diferente de aceptar el correo para enviar (según lo que leo). ¿Alguien enfrenta algo similar? Siempre obtengo un "número de versión incorrecto" en el servidor que trabaja en el puerto 587.