首页 > 解决方案 > 使用 python3 发送一封简单的电子邮件

问题描述

我正在尝试在 python3 上发送电子邮件。我正在将电子邮件转发到中继服务器。我已经在线学习了几个教程,并且都给了我相同的错误消息。不知道如何修复它。

Traceback (most recent call last):
  File "testEmail.py", line 17, in <module>
    msg['Subject'] = "Test mail"
TypeError: 'str' object does not support item assignment
#!/usr/bin/python3

import smtplib

port = 25
msg = "This is test mail"

msg['Subject'] = "Test mail"
msg['From'] = 'test@test.com'
msg['To'] = 'my-name@test2.com'

s = smtplib.SMTP('10.1.2.3', port)
s.send_messsage(msg)
s.quit()
print("Successfully sent email")

标签: python

解决方案


根据文档中的所有示例,msg需要一个EmailMessage.

msg = EmailMessage()
msg.set_content("This is test mail")
msg['Subject'] = "Test mail"
...

使用模块时最好阅读基本的官方文档和示例,这样您就不会错过这样的基本内容。


推荐阅读