#!/usr/bin/python
import
smtplib
from
email.mime.text
import
MIMEText
mail_user
=
"xxx"
mail_pass
=
"xxx"
def
send_mail(to_list, sub, content):
me
=
"Ryan Mok"
+
"<"
+
mail_user
+
"@"
+
mail_postfix
+
">"
msg
=
MIMEText(content, _subtype
=
'plain'
,_charset
=
'gb2312'
)
msg[
'Subject'
]
=
sub
msg[
'From'
]
=
me
msg[
'To'
]
=
';'
.join(to_list)
try
:
server
=
smtplib.SMTP()
server.connect(mail_host)
server.login(mail_user,mail_pass)
server.sendmail(me,to_list,msg.as_string())
server.close()
return
True
except
Exception, e:
print
str
(e)
return
False
if
__name__
=
=
'__main__'
:
if
send_mail(mailto_list,
"This is test mail"
,
"This is a test email send from python."
):
print
"Send succeed!\n"
else
:
print
"Send failed!\n"
1
jugelizi 2016-05-24 11:14:11 +08:00
发送给多个人呗 你 web 端写邮件不也是分号加多个人嘛
|
2
vexplore 2016-05-24 11:23:28 +08:00 via iPhone
我也试过网易邮箱,发多人不行,发单人可以,发单人 cc 一个人也可以, cc 多了也不行。
|
3
upczww 2016-05-24 12:06:31 +08:00
|
4
TimePPT 2016-05-24 15:46:08 +08:00
被判垃圾邮件常见情况:
1. 发送频率过大; 2. 收件人有大量无效地址; 3. 发送域名 /IP 信用评级过低; 4. 用了个人邮箱或企业邮箱的个人账户大量群发直接被邮件服务发件方给 ban 了。 对于 1 :减小发送频率; 对于 2 :严控收件人地址真实性; 对于 3 :做好域名反解析,有条件的上数字签名( SPF 和 DKIM ); 对于 4 :自建 sendmail 服务或者用专业的 EDM 发送服务。 其实,你只要用下专业 EDM 发送服务,加上初始配置合理,发小宗邮件无压力。 |
5
yylzcom 2016-05-24 15:48:58 +08:00
用 smtp 协议,另外做好 spf 和 dkim ,不要发送大量重复内容(用户不需要)的邮件
|
6
leisurelylicht 2016-05-24 16:07:18 +08:00
@vexplore 如果不是量特别大的话,发多人是可以的
|
7
foo2bar 2016-05-24 17:42:25 +08:00
>>> mailto_list="[email protected]"
>>> list_1 = ';'.join(mailto_list) >>> print list_1 v;2;e;x;@;h;o;t;m;a;i;l;.;c;o;m >>> list_2 = ';'.join([mailto_list]) >>> print list_2 [email protected] 明明你写的是"mailto_list",为什么赋值是一个字符串?把 mailto_list 赋值一个 list ,你再使用 join()看看结果。 |
8
bravecarrot 2016-05-24 17:46:12 +08:00 via iPhone
我之前做过,据我观察,很可能和邮件内容有关
包括 subject 和 content |
9
bravecarrot 2016-05-24 17:57:06 +08:00 via iPhone
“;” join ( list )
是指把 list 中的所有元素按顺序连起来,用;做分割, 返回一个字符串。 ;可以是任意字符或字符串 list 是 list 或字符串等 iterable 对象。 手机回复,对格式别挑剔啦。 |
10
georgema1982 2016-05-25 04:01:50 +08:00
很多邮箱服务器对于使用它们的 smtp 发送邮件有很大限制,唯恐你用他们的 smtp 来发送垃圾邮件。所以一般不建议直接用 smtp 发送邮件,而是用专门的邮件发送服务(比如 sparkpost )
|
11
ryan93 OP @foo2bar @bravecarrot 谢谢
|
12
foo2bar 2016-05-25 09:40:05 +08:00
@ryan93
为什么要这样写? 因为 send_mail()接收一个 list ,而 msg['To']接收的是一个字符串,所以在这里用 join()方法把 list 里的所有字符串连接为一个字符串。 |
13
ryan93 OP @TimePPT 我发现 hotmail 检查垃圾邮件规则很严格,我用 163.com, sina.com, qq.com, foxmail.com 等邮箱均可发送成功, hotmail 相同主题和内容发送成功一次,第二次发送就拒收了。
|