Luasec - 通过SMTP在Gmail上发送电子邮件

我尝试使用 luasec 连接到我的 Gmail 帐户并通过 SMTP 发送电子邮件,虽然经过一段时间后我能够允许不安全的应用连接,但我想找出如何通过 Gmail 实现安全连接。

我使用了以下代码,我在这里找到了它,其中套接字连接在连接到 Gmail 之前被 SSL 包装,但谷歌仍然表示连接不安全。

本地套接字 =需要'套接字'
SMTP =需要'套接字.smtp'
SSL =需要'SSL'
函数 sslCreate()
    本地套接字 =套接字.tcp()
    return setmetatable({
        连接= function(_,host,port)
            本地r,e =套接字:连接(主机,端口)
            如果不是r则返回r,e
            sock = SSL.wrap (套接字,{mode ='client',protocol ='tlsv1'})
            回噩手()
        结束
    },{
        __index = function(t,n)
            返回函数(_,...)
                返回sock [n](手套,...)
            结束
        结束
    })
结束

函数 sendMessage(主题,正文)
    当地MSG = {
        headers = {
            对 = '您的目标<target email>',
            主题=主题
        },
        身体=身体
    }

    当地ok,err = SMTP发送{
        来自= '<your email>',
        收件人= '<目标电子邮件>',
        源 = SMTP .message(MSG),
        用户= '用户名',
        密码= '密码',
        服务器= 'smtp.gmail.com',
        端口= 465,
        创建= sslCreate
    }
    如果不是ok则
        打印(“邮件发送失败”,err) - 需要更好的错误处理
    结束
结束

我甚至创建了一个自签名证书并将其用作 SSL 包装中的变量,但仍然使 Gmail 识别连接不安全。我们需要更改协议还是需要更新 luasec 库?

顺便说一句,我也无法通过 Hotmail / Outlook.com 发送电子邮件。

点赞
用户308010
用户308010

关于 Gmail:

可以在 这里 查看具体情况。基本上,谷歌决定说:“嘿,我们希望每个账户都安全,所以我们拒绝让 less secure 的应用访问用户的 Gmail 账户!”幸好,你可以关闭这个设置,否则我就无法使用 Fossamail 作为我的邮件客户端了。

Hotmail/Outlook 可能也是同样的情况,但我自己没有使用过。

2015-10-17 23:58:42