关于python无法发邮件给qq邮箱和126等其他邮箱的问题

Linux光 2017-08-20 07:59:19
各位大神,
小弟写了一个python发邮件的简单代码,但是当发给自己的时候测试时OK的,但是如果发向其他邮箱就会有问题,麻烦大神看看是哪里的问题,谢谢!

!C:\Python27
# coding:utf-8

import smtplib
from email.mime.text import MIMEText
from email.header import Header
import time

sender = "diweiguang88@163.com"

receivers = "wangwei@163.com"
while (1):
time.sleep(2)
print '11111'
message = MIMEText('Pure Text Here!','plain','utf-8')
print '2222'
message['From'] = Header('from Mark','utf-8')
print '3333'
message['To'] = Header('test titile','utf-8')
print '555'
subject = 'this is titile of mail'
message['Subject'] = Header(subject,'utf-8')
print '6666'
try:
smtpObj = smtplib.SMTP()
print '7777'
smtpObj.connect('smtp.163.com',25)
print '8888'
smtpObj.login(sender,'diweiguang199157')
print '9999'
smtpObj.sendmail(sender,receivers,message.as_string())
print '101010'
smtpObj.quit()
print 'OK'
except smtplib.SMTPException,e:
print e.message
...全文
738 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Linux光 2017-08-31
  • 打赏
  • 举报
回复
引用 7 楼 xpresslink 的回复:
11111 2222 3333 555 6666 7777 8888 Traceback (most recent call last): File "D:/sharefolder/python_temp/1.py", line 27, in <module> smtpObj.sendmail(sender,receivers,message.as_string()) File "C:\Python27\lib\smtplib.py", line 751, in sendmail raise SMTPDataError(code, resp) SMTPDataError: (554, 'DT:SPM 163 smtp10,DsCowABHAJ4fbZpZnM1tAw--.20029S2 1503292703,please see http://mail.163.com/help/help_spam_16.htm?ip=106.37.223.54&hostid=smtp10&time=1503292703') •554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件; 都说了,你的账号可能由于发送相同内容次数太多已经被邮件服务器标识成垃圾邮件了。 你换个账号,改一下标题和内容再试吧,不然白费劲儿。
引用 7 楼 xpresslink 的回复:
11111 2222 3333 555 6666 7777 8888 Traceback (most recent call last): File "D:/sharefolder/python_temp/1.py", line 27, in <module> smtpObj.sendmail(sender,receivers,message.as_string()) File "C:\Python27\lib\smtplib.py", line 751, in sendmail raise SMTPDataError(code, resp) SMTPDataError: (554, 'DT:SPM 163 smtp10,DsCowABHAJ4fbZpZnM1tAw--.20029S2 1503292703,please see http://mail.163.com/help/help_spam_16.htm?ip=106.37.223.54&hostid=smtp10&time=1503292703') •554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件; 都说了,你的账号可能由于发送相同内容次数太多已经被邮件服务器标识成垃圾邮件了。 你换个账号,改一下标题和内容再试吧,不然白费劲儿。
最近项目忙没上csdn看,多谢大神指点!
混沌鳄鱼 2017-08-21
  • 打赏
  • 举报
回复
11111 2222 3333 555 6666 7777 8888 Traceback (most recent call last): File "D:/sharefolder/python_temp/1.py", line 27, in <module> smtpObj.sendmail(sender,receivers,message.as_string()) File "C:\Python27\lib\smtplib.py", line 751, in sendmail raise SMTPDataError(code, resp) SMTPDataError: (554, 'DT:SPM 163 smtp10,DsCowABHAJ4fbZpZnM1tAw--.20029S2 1503292703,please see http://mail.163.com/help/help_spam_16.htm?ip=106.37.223.54&hostid=smtp10&time=1503292703') •554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件; 都说了,你的账号可能由于发送相同内容次数太多已经被邮件服务器标识成垃圾邮件了。 你换个账号,改一下标题和内容再试吧,不然白费劲儿。
Linux光 2017-08-21
  • 打赏
  • 举报
回复
引用 5 楼 xpresslink 的回复:
没有仔细看你的代码, 你那个while (1):会 不停发信的,估计你的账号已经被列入黑名单了 不信你把这下面这段代码,复制回去运行一下就能看到提示信息了。

# -*- coding:utf-8 -*-  
 
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import time
 
sender = u"diweiguang88@163.com"
 
receivers = [u"wangwei@163.com"]

print '11111'
message = MIMEText(u'Pure Text Here!','plain','utf-8')
print '2222'
message['From'] = Header(u'diweiguang88@163.com','utf-8')
print '3333'
message['To'] = Header(u'wangwei@163.com','utf-8')
print '555'
subject = u'this is titile of mail'
message['Subject'] = Header(subject,'utf-8')
print '6666'
smtpObj = smtplib.SMTP()
print '7777'
smtpObj.connect(u'smtp.163.com',25)
print '8888'
smtpObj.login(sender,u'diweiguang199157')
smtpObj.sendmail(sender,receivers,message.as_string())
smtpObj.quit()

Traceback (most recent call last): File "D:\temp\7.py", line 28, in <module> smtpObj.sendmail(sender,receivers,message.as_string()) File "C:\Python27\lib\smtplib.py", line 751, in sendmail raise SMTPDataError(code, resp) SMTPDataError: (554, 'DT:SPM 163 smtp2,DNGowAAXVjbKn5lZg26mAA--.26737S2 1503240138,please see http://mail.163.com/help/help_spam_16.htm?ip=123.121.56.215&hostid=smtp2&time=1503240138')   •554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;   •554 DT:SUM 信封发件人和信头发件人不匹配;   •554 IP is rejected, smtp auth error limit exceed 该IP验证失败次数过多,被临时禁止连接。请检查验证信息设置;   •554 HL:IHU 发信IP因发送垃圾邮件或存在异常的连接行为,被暂时挂起。请检测发信IP在历史上的发信情况和发信程序是否存在异常;   •554 HL:IPB 该IP不在网易允许的发送地址列表里;   •554 MI:STC 发件人当天内累计邮件数量超过限制,当天不再接受该发件人的投信。请降低发信频率;   •554 MI:SPB 此用户不在网易允许的发信用户列表里;   •554 IP in blacklist 该IP不在网易允许的发送地址列表里。
我改成你改的这样,发给自己都发不了了,原来我可以发给自己邮箱,是OK的,现在发给我自己邮箱报下面错误,我原来可以走到9999那里,就是前面链接都是好的,就是最后发送的时候,发送函数中断了,现在只能走到777这里 C:\Users\wdi>python D:\Python\smtp.py 11111 2222 3333 555 6666 7777 Traceback (most recent call last): File "D:\Python\smtp.py", line 23, in <module> smtpObj.connect(u'smtp.163.com',25) File "C:\Python27\lib\smtplib.py", line 316, in connect self.sock = self._get_socket(host, port, self.timeout) File "C:\Python27\lib\smtplib.py", line 291, in _get_socket return socket.create_connection((host, port), timeout) File "C:\Python27\lib\socket.py", line 575, in create_connection raise err socket.error: [Errno 10013] An attempt was made to access a socket in a way forb idden by its access permissions
混沌鳄鱼 2017-08-20
  • 打赏
  • 举报
回复
没有仔细看你的代码, 你那个while (1):会 不停发信的,估计你的账号已经被列入黑名单了 不信你把这下面这段代码,复制回去运行一下就能看到提示信息了。

# -*- coding:utf-8 -*-  
 
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import time
 
sender = u"diweiguang88@163.com"
 
receivers = [u"wangwei@163.com"]

print '11111'
message = MIMEText(u'Pure Text Here!','plain','utf-8')
print '2222'
message['From'] = Header(u'diweiguang88@163.com','utf-8')
print '3333'
message['To'] = Header(u'wangwei@163.com','utf-8')
print '555'
subject = u'this is titile of mail'
message['Subject'] = Header(subject,'utf-8')
print '6666'
smtpObj = smtplib.SMTP()
print '7777'
smtpObj.connect(u'smtp.163.com',25)
print '8888'
smtpObj.login(sender,u'diweiguang199157')
smtpObj.sendmail(sender,receivers,message.as_string())
smtpObj.quit()

Traceback (most recent call last): File "D:\temp\7.py", line 28, in <module> smtpObj.sendmail(sender,receivers,message.as_string()) File "C:\Python27\lib\smtplib.py", line 751, in sendmail raise SMTPDataError(code, resp) SMTPDataError: (554, 'DT:SPM 163 smtp2,DNGowAAXVjbKn5lZg26mAA--.26737S2 1503240138,please see http://mail.163.com/help/help_spam_16.htm?ip=123.121.56.215&hostid=smtp2&time=1503240138')   •554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;   •554 DT:SUM 信封发件人和信头发件人不匹配;   •554 IP is rejected, smtp auth error limit exceed 该IP验证失败次数过多,被临时禁止连接。请检查验证信息设置;   •554 HL:IHU 发信IP因发送垃圾邮件或存在异常的连接行为,被暂时挂起。请检测发信IP在历史上的发信情况和发信程序是否存在异常;   •554 HL:IPB 该IP不在网易允许的发送地址列表里;   •554 MI:STC 发件人当天内累计邮件数量超过限制,当天不再接受该发件人的投信。请降低发信频率;   •554 MI:SPB 此用户不在网易允许的发信用户列表里;   •554 IP in blacklist 该IP不在网易允许的发送地址列表里。
Linux光 2017-08-20
  • 打赏
  • 举报
回复
引用 3 楼 xpresslink 的回复:
[quote=引用 2 楼 diweiguang 的回复:] [quote=引用 1 楼 xpresslink 的回复:] 问题应该出在你的邮件头中的 “From”和“To” 你那个两个字段都是给填了一个随意字符串,正规邮件服务器通常都会拒收的。 改成真正的邮件地址就可以了。最好不要伪造地址,要和实际的sender地址一致,不然有些严格的邮件服务器也会认为是垃圾或恶意邮件而拒收。 message['From'] = Header('from Mark','utf-8')改 message['From'] = Header(sender, 'utf-8') 如果要自定义显示发件人名字按下面的格式 message['From'] = Header(u'from Mark<{}>'.format(sender), 'utf-8') message['To'] = Header('test titile','utf-8') 改成 message['To'] = Header(receivers,'utf-8')
我试了一下,发现还是不行打印到9999就停了,奇怪 11111 2222 3333 555 6666 7777 8888 9999 [/quote] 你把 receivers = "wangwei@163.com" 改成 receivers = ["wangwei@163.com"] 试一下。因为 receivers要求是一个列表。[/quote] 改了还是不行,每次都是走到发送的函数就停住了,有没有什么办法知道出错的原因?类似c语言的errno这种?
混沌鳄鱼 2017-08-20
  • 打赏
  • 举报
回复
引用 2 楼 diweiguang 的回复:
[quote=引用 1 楼 xpresslink 的回复:] 问题应该出在你的邮件头中的 “From”和“To” 你那个两个字段都是给填了一个随意字符串,正规邮件服务器通常都会拒收的。 改成真正的邮件地址就可以了。最好不要伪造地址,要和实际的sender地址一致,不然有些严格的邮件服务器也会认为是垃圾或恶意邮件而拒收。 message['From'] = Header('from Mark','utf-8')改 message['From'] = Header(sender, 'utf-8') 如果要自定义显示发件人名字按下面的格式 message['From'] = Header(u'from Mark<{}>'.format(sender), 'utf-8') message['To'] = Header('test titile','utf-8') 改成 message['To'] = Header(receivers,'utf-8')
我试了一下,发现还是不行打印到9999就停了,奇怪 11111 2222 3333 555 6666 7777 8888 9999 [/quote] 你把 receivers = "wangwei@163.com" 改成 receivers = ["wangwei@163.com"] 试一下。因为 receivers要求是一个列表。
Linux光 2017-08-20
  • 打赏
  • 举报
回复
引用 1 楼 xpresslink 的回复:
问题应该出在你的邮件头中的 “From”和“To” 你那个两个字段都是给填了一个随意字符串,正规邮件服务器通常都会拒收的。 改成真正的邮件地址就可以了。最好不要伪造地址,要和实际的sender地址一致,不然有些严格的邮件服务器也会认为是垃圾或恶意邮件而拒收。 message['From'] = Header('from Mark','utf-8')改 message['From'] = Header(sender, 'utf-8') 如果要自定义显示发件人名字按下面的格式 message['From'] = Header(u'from Mark<{}>'.format(sender), 'utf-8') message['To'] = Header('test titile','utf-8') 改成 message['To'] = Header(receivers,'utf-8')
我试了一下,发现还是不行打印到9999就停了,奇怪 11111 2222 3333 555 6666 7777 8888 9999
混沌鳄鱼 2017-08-20
  • 打赏
  • 举报
回复
问题应该出在你的邮件头中的 “From”和“To” 你那个两个字段都是给填了一个随意字符串,正规邮件服务器通常都会拒收的。 改成真正的邮件地址就可以了。最好不要伪造地址,要和实际的sender地址一致,不然有些严格的邮件服务器也会认为是垃圾或恶意邮件而拒收。 message['From'] = Header('from Mark','utf-8')改 message['From'] = Header(sender, 'utf-8') 如果要自定义显示发件人名字按下面的格式 message['From'] = Header(u'from Mark<{}>'.format(sender), 'utf-8') message['To'] = Header('test titile','utf-8') 改成 message['To'] = Header(receivers,'utf-8')

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧