lua wyślij pocztę z konta gmail

Chcę wysłać e-mail z moim kontem gmail, spróbowałem, ale nie mam szczęścia, więc czy ktoś może dać mi próbkę? Wszelkie sugestie będą mile widziane. Dziękuję Ci

Użyłem lualogging api, kod jest

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!")
 ms200817 cze 2012, 12:42
Użyłem lualogging api
 hjpotter9217 cze 2012, 12:31
zrobiłby kilka kodów. :)
 kikito17 cze 2012, 12:34
naprawdę musisz pracować nad swoim pytaniem nieco bardziej, jeśli chcesz uzyskać jakąkolwiek użyteczną odpowiedź. Określ rzeczy, takie jak bieżąca konfiguracja (może PC? Mobile? Corona SDK?). Poświęć trochę czasu na dokładne wyjaśnienie (ze szczegółami i kodem) tego, co próbowałeś.

questionAnswers(2)

ale nie działa (dla mnie), gdy serwer smpt działa na porcie 587, używając całkiem innego sposobu akceptowania wysyłania poczty (zgodnie z tym, co przeczytałem). Czy ktoś zmierzył się z czymś podobnym? Zawsze otrzymuję „zły numer wersji” na serwerze pracującym na porcie 587.

QuestionSolution

Powinieneś się przyjrzećLuaSocket, zwłaszcza jegoModuł SMTP które można wykorzystać do wysyłania poczty za pomocą konta GMail. Potrzebuję także biblioteki SSL, używamLuaSec który został zaprojektowany do współpracy z LuaSocket. To jest kod, którego z powodzeniem użyłem do wysyłania e-maili przy użyciu mojego konta 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
 ms200818 cze 2012, 01:23
Nie ważne jak, dzięki za komentarze, chłopaki!
 Michal Kottman17 cze 2012, 19:03
Przykro mi, ale nie znam twojego alternatywnego ustawienia usługi pocztowej, więc może wymagać innej wersji SSL, jakprotocol = 'sslv3'. Jeśli w ogóle nie potrzebujesz SSL, usuńcreate = sslCreate linia.
 JERRY04 cze 2014, 08:05
@Mitchal, kiedy pracowałem nad twoim kodem, pojawia się błąd
 ms200817 cze 2012, 12:44
dzięki za twój przykład, spróbuję
 Michal Kottman17 cze 2012, 13:13
W przykładzie jest już uwierzytelnianie i szyfrowanie. Zobaczuser ipassword pola isslCreate funkcja używana do inicjowania połączenia. Potrzebujesz tylko bibliotek LuaSocket i LuaSec.
 ms200817 cze 2012, 14:40
A jeśli serwer smtp nie musi zapewniać bezpiecznego połączenia, ale wymaga uwierzytelnienia. jaki kod? dzięki. Przepraszam, bardzo cię pytam, jestem nowicjuszem, więc :)
 ms200817 cze 2012, 13:35
Próbowałem, to działa! Dziękuję bardzo. A teraz chcę skorzystać z innej usługi pocztowej. Kiedy próbowałem uzyskać 1 komunikaty o błędach, które mówią: „Nieudany numer wersji wysyłania poczty”, co mam zrobić? zmodyfikować funkcję sslCreate?
 ms200817 cze 2012, 12:49
Czy Lua nie obsługuje serwerów poczty wymagających uwierzytelniania (działa dziwnie i nie obsługuje SSL)?

yourAnswerToTheQuestion