2012-06-17 20 views
7

Benim gmail hesabı ile e-posta göndermek istiyorum, ben bir şans verdim, ama hayır şans, yani herkes bana bir örnek verebilir? Herhangi bir öneri takdir edilecektir. Ben api lualogging kullanılanlua gmail hesabı ile posta gönder

teşekkür ederiz, kod,

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

bazı kodları kullanır. :) – hjpotter92

+0

herhangi bir yararlı cevap almak istiyorsanız sorunuzu biraz daha fazla çalışmanız gerekiyor. Mevcut kurulumunuz gibi şeyler belirtin (PC? Mobile? Corona SDK, belki?). Ayrıca, denediğiniz şeyi (detaylar ve kod ile) açıklamak için zaman ayırın. – kikito

+0

lualogging api'yi kullanıyorum – ms2008

cevap

14

Sen LuaSocket bakmak gerekir özellikle onun GMail hesabınızı kullanarak posta göndermek için kullanılabilir SMTP module. Ayrıca bir SSL kitaplığına ihtiyacınız var, LuaSocket ile birlikte kullanılmak üzere tasarlanmış LuaSec kullanıyorum. Bu başarıyla benim GMail hesabı kullanarak e-postalar göndermek için kullanılan koddur: Michal Kottman gelen kodu düzgün çalışır

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

Örneğiniz için teşekkürler, bir deneme alacağım – ms2008

+0

Is Lua desteklemeyi gerektiren posta sunucularını desteklemiyor mu (garip davranıyor ve SSL'yi desteklemiyor)? – ms2008

+0

Örnekte zaten kimlik doğrulama ve şifreleme var. Bağlantıyı başlatmak için kullanılan 'user' ve' password' alanlarını ve 'sslCreate' işlevini görün. Sadece LuaSocket ve LuaSec kütüphanelerine ihtiyacınız var. –

0

ama smpt sunucu oldukça farklı bir yol kullanarak, 587 bağlantı noktasında çalışır zaman (benim için) başarısız gönderilecek postayı kabul et (okumak istediklerime göre). Herkes benzer bir şeyle karşılaştı mı? 587 numaralı bağlantı noktasında çalışan sunucuda her zaman "yanlış sürüm numarası" alırım.

İlgili konular