当前位置:首页 » 编程语言 » python邮件群发

python邮件群发

发布时间: 2023-03-08 01:44:43

Ⅰ 为什么用python.csv模块群发邮件时给两个人时,只有第二个人能收到

可能是邮件系统有问题或者网路原因造成邮件丢失。
能发邮件却收不到邮件的情况(用的vip邮箱),直接找官方排查问题,自己没办法解决。

Ⅱ 如何用python发送email

python发送email还是比较简单的,可以通过登录邮件服务来发送,linux下也可以使用调用sendmail命令来发送,还可以使用本地或者是远程的smtp服务来发送邮件,不管是单个,群发,还是抄送都比较容易实现。

先把几个最简单的发送邮件方式记录下,像html邮件,附件等也是支持的,需要时查文档即可

1 登录邮件服务

[python]view plain

  • #!/usr/bin/envpython

  • #-*-coding:utf-8-*-

  • #python2.7x

  • #send_simple_email_by_account.py@2014-07-30

  • #author:orangleliu

  • '''''

  • 使用python写邮件simple

  • 使用126的邮箱服务

  • '''

  • importsmtplib

  • fromemail.mime.textimportMIMEText

  • SMTPserver='smtp.126.com'

  • sender='[email protected]'

  • password="xxxx"

  • message='IsendamessagebyPython.你好'

  • msg=MIMEText(message)

  • msg['Subject']='TestEmailbyPython'

  • msg['From']=sender

  • msg['To']=destination

  • mailserver=smtplib.SMTP(SMTPserver,25)

  • mailserver.login(sender,password)

  • mailserver.sendmail(sender,[sender],msg.as_string())

  • mailserver.quit()

  • print'sendemailsuccess'

  • 2调用sendmail命令 (linux)

    [python]view plain

  • #-*-coding:utf-8-*-

  • #python2.7x

  • #send_email_by_.py

  • #author:orangleliu

  • #date:2014-08-15

  • '''''

  • 用的是sendmail命令的方式

  • 这个时候邮件还不定可以发出来,hostname配置可能需要更改

  • '''

  • fromemail.mime.textimportMIMEText

  • fromsubprocessimportPopen,PIPE

  • defget_sh_res():

  • p=Popen(['/Application/2.0/nirvana/logs/log.sh'],stdout=PIPE)

  • returnstr(p.communicate()[0])

  • defmail_send(sender,recevier):

  • print"getemailinfo..."

  • msg=MIMEText(get_sh_res())

  • msg["From"]=sender

  • msg["To"]=recevier

  • msg["Subject"]="Yestodayinterfacelogresults"

  • p=Popen(["/usr/sbin/sendmail","-t"],stdin=PIPE)

  • res=p.communicate(msg.as_string())

  • print'mailsended...'

  • if__name__=="__main__":

  • s="[email protected]"

  • r="[email protected]"

  • mail_send(s,r)

  • 3 使用smtp服务来发送(本地或者是远程服务器)

    [python]view plain

  • #!/usr/bin/envpython

  • #-*-coding:utf-8-*-

  • #python2.7x

  • #send_email_by_smtp.py

  • #author:orangleliu

  • #date:2014-08-15

  • '''''

  • linux下使用本地的smtp服务来发送邮件

  • 前提要开启smtp服务,检查的方法

  • #ps-ef|grepsendmail

  • #telnetlocalhost25

  • 这个时候邮件还不定可以发出来,hostname配置可能需要更改

  • '''

  • importsmtplib

  • fromemail.mime.textimportMIMEText

  • fromsubprocessimportPopen,PIPE

  • defget_sh_res():

  • p=Popen(['/Application/2.0/nirvana/logs/log.sh'],stdout=PIPE)

  • returnstr(p.communicate()[0])

  • defmail_send(sender,recevier):

  • msg=MIMEText(get_sh_res())

  • msg["From"]=sender

  • msg["To"]=recevier

  • msg["Subject"]="Yestodayinterfacelogresults"

  • s=smtplib.SMTP('localhost')

  • s.sendmail(sender,[recevier],msg.as_string())

  • s.quit()

  • print'sendmailfinished...'

  • if__name__=="__main__":

  • s="[email protected]"

  • r=s

  • mail_send(s,r)



Ⅲ python 使用zmail收发电子邮件

1、发送邮件:
import zmail
server = zmail.server(' [email protected] ’, 'yourpassword')

server.send_mail(' [email protected] ',{'subject':'Hello!','content_text':'By zmail.'})
server.send_mail([' [email protected] ',' [email protected] '],{'subject':'Hello!','content_text':'By zmail.'})

2、接收最后一封邮件:
import zmail
server = zmail.server(' [email protected] ’, 'yourpassword')

latest_mail = server.get_latest()
zmail.show(latest_mail)

3、发送带附件的邮件:
import zmail
mail = {
'subject': 'Success!', # Anything you want.
'content_text': 'This message from zmail!', # Anything you want.
'attachments': ['/Users/zyh/Documents/example.zip','/root/1.jpg'], # Absolute path will be better.
}

server = zmail.server(' [email protected] ’, 'yourpassword')

server.send_mail(' [email protected] ', mail)
server.send_mail([' [email protected] ',' [email protected] '], mail)

4、发送html格式邮件:
with open('/Users/example.html','r') as f:
content_html = f.read()
mail = {
'subject': 'Success!', # Anything you want.
'content_html': content_html,
'attachments': '/Users/zyh/Documents/example.zip', # Absolute path will be better.
}
server.send_mail(' [email protected] ',mail)

5、使用抄送:
server.send_mail([' [email protected] ',' [email protected] '],mail,cc=[' [email protected] '])

6、自定义server
server = zmail.server('username','password',smtp_host='smtp.163.com',smtp_port=994,smtp_ssl=True,pop_host='pop.163.com',pop_port=995,pop_tls=True)

7、根据ID取回邮件:mail = server.get_mail(2)
根据日期、主题、发送人取回邮件:
mail = server.get_mails(subject='GitHub',after='2018-1-1',sender='github')
mail = server.get_mails(subject='GitHub',start_time='2018-1-1',sender='github',start_index=1,end_index=10)

8、查看邮箱统计
mailbox_info = server.stat() #结果为包含两个整型的元组: (邮件的数量, 邮箱的大小).

9、删除邮件:MailServer.delete(which)
10、保存附件:zmail.save_attachment(mail,target_path=None,overwrite=False)
11、保存邮件:zmail.save(mail,name=None,target_path=None,overwrite=False)
12、读取邮件:zmail.read(file_path,SEP=b'\r\n')

支持的列表:

Ⅳ Python怎么群发邮件

要群发邮件直接找u-mail邮件营销平台啊,操作方便简单,成功率高,效果有保障,还有详细的报表统计发送效果,免费试用

Ⅳ Python向多人发送、抄送带附件的邮件(含详细代码)

python要发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后使用smtplib.smtp发送。

步骤:

(1)设置服务器所需信息(ps:部门邮箱密码为授权码,需自行登录相应邮箱设置授权码)

(2)设置email信息

(3)附件部分

(4)登录邮箱并发送邮件

附上源码

Ⅵ python批量发送邮件--包括批量不同附件

小猪在公司做出纳,干的活却包括了出纳、会计、结算专员等工作,周末都要被无奈在家加班,主要还没有加班费,简直是被公司严重压榨。每个月初都要给每个工长发预付款账单邮件,月中发结算款账单。重复性机械工作。
一个及格线上的程序员,最起码的觉悟就是将重复性的机械工作自动化,于是,在我花了一个多小时,帮她给一部分工长发了一次邮箱后,默默的回来写了这个脚本
所以,设计要点就是一个字——
恩,就酱。

经过我观察,邮件内容分为两种,这里先说第一种,“结算款”:
(1) 邮件内容(content)不变,为固定的txt文本
(2) 附件(attch)为每个工长的结算账单(excel文件.xlsx),此文件命名为总账单中自动分割出来的名字(暂时不懂怎么分割出来的=.=),格式为:

(3) 邮件主题(Subject)为附件名(不带后缀名)
(4) 邮件接收对象(工长)的名单及其邮箱地址基本不变,偶尔变动
(5)

(1) 将工长及其邮箱地址存为CSV文件的两列,python中将其读取为字典形式,存储以供后续查询邮箱地址。

(2) 遍历文件夹中的附件(.xlsx类型文件),对其进行两种操作,一方面将其名字(不带路径和后缀)提取出来,作为邮件主题(Subject),并对Subject进一步划分,得到其中的人名(工长);另一方面,将其传入MIMEbase模块中转为邮件附件对象。

(3) 由上述得到的人名(name),在字典形式的通讯录中,查找相应的地址(value),即为收件人名称和地址
(4) 利用python中的email模块和smtp模块,登录自己的邮箱账号,再对每个附件,得到的收件人名和地址,添加附件,发送邮件。done

在设计过程中有几点需要注意
(1) 有时一个邮件地址对应两个人名,此时应该在CSV文件中分为两行存储,而不是将两个人名存为同一个键;
(2)有账单.xlsx文件,通讯录里却没存储此人记录,程序应该打印提示没有通讯记录的人名,且不能直接退出,要保证员工看到此提示,此第一版程序还有解决此问题;
(3)此程序发送的邮件内容为纯文本,若要求邮件内容有不同格式(如部分加粗,部分红色),还有小部分需要每次更改的地方(如邮件内容包含当前月份),如何解决?(这就是第二种邮件内容,“预算款”);
(4)重名的,暂时还没碰到,程序中也没给出解决方案。

第一版到此,20180830,待更新
第二版更新,20180904

第三版更新,20180909

转战CSDN博客,更多博客见传送门《 xiaozhou的博客主页 》

Ⅶ Python自动发送邮件多个人收件人代码更改

msg['To'] = "[email protected];[email protected]" # 多个邮件接收者,中间用;隔开
msg['Cc'] = "[email protected];[email protected]" # 多个邮件抄送者,中间用;隔开

Ⅷ 用Python发送邮件,可以群发,带有多个附件

'''''
函数说明:Send_email_text()函数实现发送带有附件的邮件,可以群发,附件格式包括:xlsx,pdf,txt,jpg,mp3等
参数说明:
1.subject:邮件主题
2.content:邮件正文
3.filepath:附件的地址,输入格式为["","",...]
4.receive_email:收件人地址,输入格式为["","",...]
'''
defSend_email_text(subject,content,filepath,receive_email):
importsmtplib
fromemail.mime.multipartimportMIMEMultipart
fromemail.mime.textimportMIMEText
fromemail.mime.
sender="发送方邮箱"
passwd="填入发送方密码"
receivers=receive_email#收件人邮箱

msgRoot=MIMEMultipart()
msgRoot['Subject']=subject
msgRoot['From']=sender

iflen(receivers)>1:
msgRoot['To']=','.join(receivers)#群发邮件
else:
msgRoot['To']=receivers[0]

part=MIMEText(content)
msgRoot.attach(part)

##添加附件部分
forpathinfilepath:
if".jpg"inpath:
#jpg类型附件
jpg_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=jpg_name)
msgRoot.attach(part)

if".pdf"inpath:
#pdf类型附件
pdf_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=pdf_name)
msgRoot.attach(part)

if".xlsx"inpath:
#xlsx类型附件
xlsx_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=xlsx_name)
msgRoot.attach(part)

if".txt"inpath:
#txt类型附件
txt_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=txt_name)
msgRoot.attach(part)

if".mp3"inpath:
#mp3类型附件
mp3_name=path.split("\")[-1]
part=MIMEApplication(open(path,'rb').read())
part.add_header('Content-Disposition','attachment',filename=mp3_name)
msgRoot.attach(part)

try:
s=smtplib.SMTP()
s.connect("smtp.mail.aliyun.com")#这里我使用的是阿里云邮箱,也可以使用163邮箱:smtp.163.com
s.login(sender,passwd)
s.sendmail(sender,receivers,msgRoot.as_string())
print("邮件发送成功")
exceptsmtplib.SMTPExceptionase:
print("Error,发送失败")
finally:
s.quit()

热点内容
c语言循环例题 发布:2024-11-06 23:05:01 浏览:332
外星人m15r6选哪个配置 发布:2024-11-06 23:03:58 浏览:999
linuxmysql数据库安装 发布:2024-11-06 23:01:28 浏览:117
压缩器能干嘛 发布:2024-11-06 23:01:16 浏览:464
分布式存储算法 发布:2024-11-06 22:55:09 浏览:872
住宅区弱电有哪些强制配置规定 发布:2024-11-06 22:51:22 浏览:827
数据库绑定 发布:2024-11-06 22:50:31 浏览:651
巧饭巧算算法 发布:2024-11-06 22:44:49 浏览:853
dns服务器的地址修改 发布:2024-11-06 22:39:54 浏览:107
cms建站源码 发布:2024-11-06 22:33:44 浏览:988