怎么自动发邮件(就是我想每隔一分钟邮件自动发)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么自动发邮件(就是我想每隔一分钟邮件自动发)相关的知识,希望对你有一定的参考价值。

参考技术A 自己写个程序吧追问

我自己会写我还会在这里提问?

追答

因为我知道没有 所以 叫你自己写

参考技术B 懂数据库的话可以试试easysqlmail。

python 自动发邮件

一、一般发邮件的方法

Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。

注意到构造MIMETEXT对象时,第一个参数就是邮件正文,第二个参数是MIME的subtype,传入\'plain\'表示纯文本,最终的MIME就是‘text/plain’,最后一定要用utf-8编码保证多语言兼容性。

然后,通过SMTP发出去:

 1 # coding:utf-8
 2 import smtplib
 3 from email.mime.text import MIMEText
 4 
 5 
 6 class SendMail:
 7 
 8     def send_mail(self, receiver_list, sub, content):
 9         host = "smtp.qq.com"            # 服务器地址
10         sender = "123@qq.com"     # 发件地址
11         password = "pwd"
12         #邮件内容
13         message = MIMEText(content, _subtype=\'plain\', _charset=\'utf-8\')
14         message[\'Subject\'] = sub   # 邮件主题
15         message[\'From\'] = sender   
16         message[\'To\'] = ";".join(receiver_list)   # 收件人之间以;分割
17         server = smtplib.SMTP()
18         # 连接服务器
19         server.connect(host=host)
20         # 登录
21         server.login(user=sender, password=password)
22         server.sendmail(from_addr=sender, to_addrs=receiver_list, msg=message.as_string())
23         server.close()
24 
25 if __name__ == \'__main__\':
26     send = SendMail()
27     receive = ["123qq.com", "456@163.com"]
28     sub = "测试邮件"
29     content = "测试邮件"
30     send.send_mail(receive, sub, content)

其实,这段代码也并不复杂,只要你理解使用过邮箱发送邮件,那么以下问题是你必须要考虑的:

  • 你登录的邮箱帐号/密码
  • 对方的邮箱帐号
  • 邮件内容(标题,正文,附件)
  • 邮箱服务器(SMTP.xxx.com/pop3.xxx.com)

 

二、利用yagmail库发送邮件

yagmail 可以更简单的来实现自动发邮件功能。

首先需要安装库: pip install yagmail

然后:

 1 import yagmail
 2 
 3 
 4 class SendMail:
 5 
 6     def send_mail(self, receiver_list, sub, content, attach=None):
 7         host = "smtp.qq.com"
 8         sender = "983@qq.com"
 9         password = "ryg"
10         # 连接服务器
11         yag = yagmail.SMTP(user=sender, password=password, host=host)
12         # 邮件内容
13         yag.send(to=receiver_list, subject=sub, contents=content, attachments=attach)
14 
15 
16 if __name__ == \'__main__\':
17     send = SendMail()
18     receive = ["983@qq.com", "513@163.com"]
19     sub = "测试邮件"
20     content = ["yagmail测试邮件", "\\n", "hello word"]
21     attch = "C:\\\\Users\\\\Administrator\\\\Desktop\\\\10.jpg"
22     send.send_mail(receive, sub, conten8t, attch)

 

另外,附件也可以之间写在content中,即conten = ["yagmail测试邮件", "\\n", "hello word", "C:\\\\Users\\\\Administrator\\\\Desktop\\\\10.jpg"]

少写了好几行代码

 

以上是关于怎么自动发邮件(就是我想每隔一分钟邮件自动发)的主要内容,如果未能解决你的问题,请参考以下文章

vb怎么每隔一秒自动点击按钮

python 自动发邮件

excel发邮件问题

python接口自动化(三十三)-python自动发邮件总结及实例说明番外篇下(详解)

第7节:用UiPath自动发送邮件

c#代码怎么通过outlook发邮件