使用 smtplib、ssl 和 bottle.py 以 python 发送电子邮件时出错
Error with sending emails with python using smtplib, ssl and bottle.py
所以我正在使用 https://realpython.com/python-send-email/#sending-a-plain-text-email
我正在使用这段代码
import smtplib, ssl
port = 465 # For SSL
smtp_server = "smtp.gmail.com"
sender_email = "my@gmail.com" # Enter your address
receiver_email = "your@gmail.com" # Enter receiver address
password = input("Type your password and press enter: ")
message = """\
Subject: Hi there
This message is sent from Python."""
context = ssl.create_default_context()
with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
而且我已经更改了一些位,例如密码和我需要的邮件,但是当我发送电子邮件时却收到此错误
File "main.py", line 32, in sendmail
with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
TypeError: __init__() got an unexpected keyword argument 'context'
当我在一个普通的 .py 文件中尝试这段代码时它可以工作但是当我将它与 bottle.py 一起使用时它给了我那个错误,我不认为它是因为其他包,任何帮助都会很感激赞赏
@Sam H 的评论是正确的:使用 context
作为位置参数,而不是将其作为带有 context=context
.
的关键字参数传递
with smtplib.SMTP_SSL(smtp_server, port, context) as server:
我认识的人今天为我做了这件事,我知道他做了什么,但它奏效了,当我做 'context' 而不是 'context=context' 时,它给了我另一个错误,但现在好了
所以我正在使用 https://realpython.com/python-send-email/#sending-a-plain-text-email
我正在使用这段代码
import smtplib, ssl
port = 465 # For SSL
smtp_server = "smtp.gmail.com"
sender_email = "my@gmail.com" # Enter your address
receiver_email = "your@gmail.com" # Enter receiver address
password = input("Type your password and press enter: ")
message = """\
Subject: Hi there
This message is sent from Python."""
context = ssl.create_default_context()
with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
而且我已经更改了一些位,例如密码和我需要的邮件,但是当我发送电子邮件时却收到此错误
File "main.py", line 32, in sendmail
with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
TypeError: __init__() got an unexpected keyword argument 'context'
当我在一个普通的 .py 文件中尝试这段代码时它可以工作但是当我将它与 bottle.py 一起使用时它给了我那个错误,我不认为它是因为其他包,任何帮助都会很感激赞赏
@Sam H 的评论是正确的:使用 context
作为位置参数,而不是将其作为带有 context=context
.
with smtplib.SMTP_SSL(smtp_server, port, context) as server:
我认识的人今天为我做了这件事,我知道他做了什么,但它奏效了,当我做 'context' 而不是 'context=context' 时,它给了我另一个错误,但现在好了