重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
使用Python怎么实现邮件发送功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
专注于为中小企业提供网站设计制作、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业阿拉善盟免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。# encoding: utf-8 import logging import smtplib from email.mime.text import MIMEText import email.utils from datetime import datetime _logger = logging.getLogger('utils.mailclient') class MailClient(object): def __init__(self, host, port, user, pwd=''): self._host = host self._port = port self._user = user self._pwd = pwd self._smtp_server = None self._debug = False self._keepalive = True def set_keepalive(self, keepalive): self._keepalive = keepalive def set_debug(self, debug): self._debug = debug if self._smtp_server is not None: self._smtp_server.set_debuglevel(self._debug) def _connect(self): if self._smtp_server is None: _smtp_server = smtplib.SMTP(self._host, self._port) _smtp_server.ehlo() _smtp_server.starttls() _smtp_server.set_debuglevel(self._debug) if self._pwd: _smtp_server.login(self._user, self._pwd) self._smtp_server = _smtp_server return self._smtp_server def _dispose(self): if self._smtp_server is not None: self._smtp_server.quit() self._smtp_server = None def send(self, to_addrs, subject, content, isdispose=True): _smtp_server = self._connect() if not isinstance(to_addrs, list): to_addrs = [to_addrs] _msg = MIMEText(content, 'html', 'utf-8') _msg['Subject'] = subject _msg['From'] = self._user _msg['To'] = '; '.join(to_addrs) _msg['Date'] = datetime.now().strftime('%Y-%d-%m %H:%M:%S') _smtp_server.sendmail(self._user, to_addrs, _msg.as_string()) isdispose and (not self._keepalive) and self._dispose() def send_mails(self, mails): _smtp_server = self._connect() for mail in mails: self._send_mail(mail.get('to'), mail.get('subject'), mail.get('content'), False) (not self._keepalive) and self._dispose() def close(self): self._dispose() if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)s %(levelname)s:%(message)s', datefmt='%Y-%m-%d %H:%M:%S') import time s = MailClient('smtp.qq.com', 587, '10010@qq.com', '授权码') # 注意,此处端口要用587,465端口是ssl使用的。 s.set_keepalive(False) s.set_debug(True) st = time.time() s.send('收信人邮箱地址', '测试', '测试邮件 From QQ') #要发送的账号、标题、内容 print(time.time() - st)
看完上述内容,你们掌握使用Python怎么实现邮件发送功能的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联成都网站设计公司行业资讯频道,感谢各位的阅读!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。