2012-06-17 12 views
7

के साथ मेल भेजें, मैं अपने जीमेल खाते के साथ ईमेल भेजना चाहता हूं, मैंने इसे आज़माया, लेकिन कोई भाग्य नहीं, तो क्या कोई मुझे नमूना दे सकता है? किसी भी सुझाव की सराहना की जाएगी। धन्यवादlua जीमेल खाते

मैं एपीआई lualogging इस्तेमाल किया, कोड,

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

कुछ कोड लूंगा। :) – hjpotter92

+0

यदि आप किसी भी तरह का उपयोगी उत्तर प्राप्त करना चाहते हैं तो आपको वास्तव में अपने प्रश्न पर थोड़ा और काम करने की ज़रूरत है। अपने वर्तमान सेटअप की तरह चीजें निर्दिष्ट करें (पीसी? मोबाइल? कोरोना एसडीके, शायद?)। वास्तव में समझाए जाने के लिए समय भी लें (विवरण, और कोड के साथ) जो आपने कोशिश की है। – kikito

+0

मैंने आपके उदाहरण के लिए lualogging api – ms2008

उत्तर

14

आप LuaSocket पर गौर करना चाहिए है विशेष रूप से इसके SMTP module जो अपने जीमेल खाते का उपयोग मेल भेजने के लिए इस्तेमाल किया जा सकता। आपको एक एसएसएल लाइब्रेरी की भी आवश्यकता है, मैं LuaSec का उपयोग करता हूं जिसे लुआसॉकेट के साथ एक साथ इस्तेमाल करने के लिए डिज़ाइन किया गया था। इस कोड को मैं सफलतापूर्वक मेरे जीमेल खाते का उपयोग कर ईमेल भेजने के लिए प्रयोग किया जाता है:

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

आज़माएंगी क्या लुआ प्रमाणीकरण की आवश्यकता वाले मेल सर्वर का समर्थन नहीं करता है (अजीब काम करता है और एसएसएल का समर्थन नहीं करता है)? – ms2008

+0

उदाहरण में पहले से ही प्रमाणीकरण और एन्क्रिप्शन है। कनेक्शन शुरू करने के लिए उपयोग किए गए 'उपयोगकर्ता' और 'पासवर्ड' फ़ील्ड और 'sslCreate' फ़ंक्शन देखें। आपको बस लुआसॉकेट और लुआसेक पुस्तकालयों की आवश्यकता है। –

0

मीकल Kottman से कोड ठीक से काम करता है, लेकिन यह (मेरे लिए) में विफल रहता है जब SMPT सर्वर 587 बंदरगाह पर काम करता है, के लिए एक बहुत अलग तरह का उपयोग कर भेजने के लिए मेल स्वीकार करें (जो मैंने पढ़ा है उसके अनुसार)। क्या किसी को भी ऐसा कुछ सामना करना पड़ता है? मैं पोर्ट 587 पर काम कर रहे सर्वर पर हमेशा "गलत संस्करण संख्या" प्राप्त करता हूं।

संबंधित मुद्दे