python中的群发电子邮件
我对编程非常陌生,所以我来这里寻求帮助。我正在尝试做一个简单的群发邮件的乐趣,目前不会使用这个,但在未来的某个时候,我可能会在我的IT工作。我的代码似乎不适合我python中的群发电子邮件,python,python-2.7,Python,Python 2.7,我对编程非常陌生,所以我来这里寻求帮助。我正在尝试做一个简单的群发邮件的乐趣,目前不会使用这个,但在未来的某个时候,我可能会在我的IT工作。我的代码似乎不适合我 import sys import smtplib emailfile = raw_input('Please enter the name of the text file that includes all email addresses: ') emailtosendfrom = raw_input('Enter your ema
import sys
import smtplib
emailfile = raw_input('Please enter the name of the text file that includes all email addresses: ')
emailtosendfrom = raw_input('Enter your email address to send from: ')
msgfile = raw_input('Please enter the text file name that includes the message you want to send out :')
email = open(emailfile, 'r')
toaddrs = email
msg = open(msgfile, 'r')
# Credentials
password = raw_input('Please enter your email password : ')
# Send mail
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login(emailtosendfrom,password)
with open(emailfile) as f:
emailsort = f.readlines()
for user in emailsort:
server.sendmail(emailtosendfrom, user, msg)
f.close()
server.quit()
此代码返回错误:
Traceback (most recent call last):
File "mail.py", line 26, in <module>
server.sendmail(emailtosendfrom, line, msg)
File "C:\Python27\lib\smtplib.py", line 717,
esmtp_opts.append("size=%d" % len(msg))
TypeError: object of type 'file' has no len()
回溯(最近一次呼叫最后一次):
文件“mail.py”,第26行,在
sendmail(emailtosendfrom、line、msg)
文件“C:\Python27\lib\smtplib.py”,第717行,
esmtp_选择.append(“大小=%d”%len(msg))
TypeError:类型为“file”的对象没有len()
任何帮助都将不胜感激。谢谢 消息应该是字符串,而不是文件。首先通过替换以下内容获取消息正文:
msg = open(emailfile, 'r')
与:
然后用以下方法修复循环本身:
server.sendmail(emailtosendfrom, user, msgbody)
虽然与问题没有直接关系,但以下是我的2个要点:
中。除了关闭文件句柄外,它们还将明确文件的实际使用位置
email=open(emailfile,'r')
和toaddrs=email
emailsort = f.readlines()
for user in emailsort:
与:
但是一定要去掉最后的\n
(否则电子邮件地址会出错)
emailsort = f.readlines()
for user in emailsort:
for user in f: