2012-06-17 197 views
7

我想用我的Gmail帐户发送电子邮件,我试了一下,但没有运气,那么任何人都可以给我一个样本?任何建议,将不胜感激。谢谢lua用Gmail帐户发送邮件

我用lualogging API,代码

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!") 
+5

将luv一些代码。 :) – hjpotter92

+0

如果你想得到任何有用的答案,你真的需要更多地处理你的问题。指定您当前的设置(PC?Mobile?Corona SDK,也许?)。也花时间来真正解释(详细信息和代码)你试过的东西。 – kikito

+0

我用lualogging API – ms2008

回答

14

你应该看看LuaSocket,尤其是其SMTP module可用于使用Gmail帐户发送邮件。您还需要一个SSL库,我使用LuaSec,它被设计为与LuaSocket一起使用。这是我成功地使用使用我的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 
+0

感谢您的例子,我会得到一个尝试 – ms2008

+0

是否Lua不支持需要认证的邮件服务器(行为怪异,不支持SSL)? – ms2008

+0

在这个例子中已经有认证和加密。请参阅用户名和密码字段以及用于启动连接的sslCreate函数。你只需要LuaSocket和LuaSec库。 –

0

从米哈尔Kottman代码工作正常,但它没有(对我来说)时,SMPT服务器工作在587端口,利用一个相当不同的方式接受邮件发送(根据我所读的)。有人遇到类似的事吗?我总是在端口587上的服务器上获得“错误的版本号”。

相关问题