繁体   English   中英

使用python脚本发送电子邮件

[英]Send an email using python script

今天我需要从Python脚本发送电子邮件。 我一如既往地搜索谷歌,发现以下脚本符合我的需要。

import smtplib

SERVER = "localhost"

FROM = "sender@example.com"
TO = ["user@example.com"] # must be a list

SUBJECT = "Hello!"

TEXT = "This message was sent with Python's smtplib."

# Prepare actual message

message = """\
From: %s
To: %s
Subject: %s

%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)

# Send the mail

server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()

但是当我尝试运行该程序时,我收到以下错误消息:

Traceback (most recent call last):
  File "C:/Python26/email.py", line 1, in <module>
    import smtplib
  File "C:\Python26\lib\smtplib.py", line 46, in <module>
    import email.utils
  File "C:/Python26/email.py", line 24, in <module>
    server = smtplib.SMTP(SERVER)
AttributeError: 'module' object has no attribute 'SMTP'

我怎么解决这个问题? 任何人都可以帮助我吗?

提前谢谢,Nimmy。


将名称更改为emailsendin .py。 但是我得到了以下错误

Traceback (most recent call last):
  File "C:\Python26\emailsending.py", line 24, in <module>
    server = smtplib.SMTP(SERVER)
  File "C:\Python26\lib\smtplib.py", line 239, in __init__
    (code, msg) = self.connect(host, port)
  File "C:\Python26\lib\smtplib.py", line 295, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "C:\Python26\lib\smtplib.py", line 273, in _get_socket
    return socket.create_connection((port, host), timeout)
  File "C:\Python26\lib\socket.py", line 512, in create_connection
    raise error, msg
error: [Errno 10061] No connection could be made because the target machine actively refused it

您已将模块命名为与Python内部模块相同的模块。 当您导入smtplib ,它会尝试导入email ,并找到您的模块而不是内部模块。 当两个模块相互导入时,只有在两个import语句之前可见的每个模块中的变量才会彼此可见。 重命名模块将解决问题。

您可以在堆栈跟踪中看到这一点,尽管它有点模糊。 import email.utils从线smtplib.py呼唤你的模块,在“C:/Python26/email.py”。

另一个注意事项:使用Python安装目录作为Python代码的工作目录可能不是一个好主意。

您是否将脚本email.py

如果是这样,请重命名为其他内容,并且应该解决您遇到的命名冲突。

您已设法通过调用脚本email.py stdlib email模块。 将脚本重命名为不在stdlib中的内容,然后重试。

您的计算机是否还有一个在默认端口上侦听的开放邮件服务器? smptlib提供连接到smtp邮件服务器的方法,但如果您的计算机当前没有运行,则无法向其发送邮件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM