代码之家  ›  专栏  ›  技术社区  ›  nevanom

Google SMTP不太安全的应用程序

  •  1
  • nevanom  · 技术社区  · 7 年前

    我正在尝试使用以下简单的python和mailclient通过Google SMTP服务器发送电子邮件。

    我对谷歌将这个脚本标记为不安全,并要求我允许不太安全的应用程序访问发件人的gmail帐户的部分感到有点困惑。

    有没有办法解决这个问题,而不必让安全性较差的应用程序访问我的gmail帐户。

    #Make necessary imports
    
    import mailclient
    
    #Craft the message
    msg = mailclient.Message("This will be the subject", "This will be the body content", 'sender@gmail.com', 'recipient@domain.com')
    
    #Create server object with gmail
    
    s = mailclient.Server('smtp.gmail.com', '587', 'sender@gmail.com', 'senderpassword', True)
    
    #Send email
    
    s.send(msg)
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Serge Ballesta    7 年前

    很难说,因为谷歌对他们的称呼不是很明确 不安全的应用 ,但我猜它们是使用端口25或587的应用程序。在这些端口上,连接最初建立在未加密的通道上,并且仅当(并且如果) STARTTLS 发出命令。

    所以我想您应该尝试直接通过端口465上的SSL建立连接。我不知道是否可以使用 mailclient 但对于标准库模块,它应该简单到:

    import smtplib
    from email.message import EmailMessage
    
    msg = EmailMessage()
    msg['Subject'] = "This will be the subject"
    msg['From'] = 'sender@gmail.com'
    msg['To'] = [ 'recipient@domain.com' ]
    msg.set_content("This will be the body content")
    
    server = smtplib.SMTP_SSL('smtp.gmail.com')
    server.login('sender@gmail.com', 'senderpassword')
    server.send_message(msg)
    server.quit()