찾다
웹 프론트엔드HTML 튜토리얼解读Python发送邮件_html/css_WEB-ITnose

解读Python发送邮件

Python发送邮件需要smtplib和email两个模块。也正是由于我们在实际工作中可以导入这些模块,才使得处理工作中的任务变得更加的简单。今天,就来好好学习一下使用Python发送邮件吧。

SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。

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

1.邮件正文是文本的格式

 1 # -*- coding: UTF-8 -*- 2  3 from email.mime.multipart import MIMEMultipart 4 from email.mime.text import MIMEText 5 import smtplib 6 import sys 7 import csv 8 import xlrd 9 from pyExcelerator import *10 import os11 import xlwt12 from xlutils.copy import copy13 import pyExcelerator14 import datetime15 import time16 17 reload(sys)18 sys.setdefaultencoding("utf-8")19 20 mailto_list = [""]  # 邮件接收方的邮件地址21 mail_host = "smtp.exmail.qq.com"    # 邮件传送协议服务器22 mail_user = ""  # 邮件发送方的邮箱账号23 mail_pass = ""  # 邮件发送方的邮箱密码24 25 def send_mail(to_list, sub, content):26     me = "天才白痴梦"+"<"+mail_user+">"27     msg = MIMEText(content, _subtype='plain', _charset='utf-8')28     msg['Subject'] = sub    # 邮件主题29     msg['From'] = me30     msg['To'] = ";".join(to_list)31     try:32         server = smtplib.SMTP()33         server.connect(mail_host)34         server.login(mail_user, mail_pass)35         server.sendmail(me, to_list, msg.as_string())36         server.close()37         return True38     except Exception, e:39         print str(e)40         return False41 42 if __name__ == '__main__':43     sub = "天才白痴梦"44     content = '...'45     if send_mail(mailto_list, sub, content):46         print "发送成功"47     else:48         print "发送失败"

2.邮件正文是表格的格式:由于是表格,所以我们选择HTML来实现表格的功能,邮件上面显示的就是HTML实现的内容了。

 1 # -*- coding: UTF-8 -*- 2  3 from email.mime.multipart import MIMEMultipart 4 from email.mime.text import MIMEText 5 import smtplib 6 import sys 7 import csv 8 import xlrd 9 from pyExcelerator import *10 import os11 import xlwt12 from xlutils.copy import copy13 import pyExcelerator14 import datetime15 import time16 17 reload(sys)18 sys.setdefaultencoding("utf-8")19 20 mailto_list = [""]  # 邮件接收方的邮件地址21 mail_host = "smtp.exmail.qq.com"    # 邮件传送协议服务器22 mail_user = ""  # 邮件发送方的邮箱账号23 mail_pass = ""  # 邮件发送方的邮箱密码24 25 def send_mail(to_list, sub, content):26     me = "天才白痴梦"+"<"+mail_user+">"27     # 和上面的代码不同的就是,这里我们选择的是html 的格式28     msg = MIMEText(content, _subtype='html', _charset='utf-8')29     msg['Subject'] = sub    # 邮件主题30     msg['From'] = me31     msg['To'] = ";".join(to_list)32     try:33         server = smtplib.SMTP()34         server.connect(mail_host)35         server.login(mail_user, mail_pass)36         server.sendmail(me, to_list, msg.as_string())37         server.close()38         return True39     except Exception, e:40         print str(e)41         return False42 43 if __name__ == '__main__':44     sub = "天才白痴梦"45     html = '<html></html>'46     if send_mail(mailto_list, sub, html):47         print "发送成功"48     else:49         print "发送失败"

3.邮件正文是图片的格式:要把图片嵌入到邮件正文中,我们只需按照发送附件的方式,先把邮件作为附件添加进去,然后,在HTML中通过引用src="cid:0"就可以把附件作为图片嵌入了。如果有多个图片,给它们依次编号,然后引用不同的cid:x即可。

 1 def send_mail(to_list, sub, content): 2     me = "天才白痴梦"+"<"+mail_user+">" 3  4     msg = MIMEMultipart() 5     msg['Subject'] = sub    # 邮件主题 6     msg['From'] = me 7     msg['To'] = ";".join(to_list) 8  9     txt = MIMEText("天才白痴梦", _subtype='plain', _charset='utf8')10     msg.attach(txt)11 12     # <b>:黑体  <i>:斜体13     msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<img src="/static/imghwm/default1.png"  data-src="cid:image1"  class="lazy"  alt="" />good!', 'html', 'utf-8')14     msg.attach(msgText)15 16     file1 = "F:\\1.jpg"17     image = MIMEImage(open(file1, 'rb').read())18     image.add_header('Content-ID', '<image1>')19     msg.attach(image)20 21     try:22         server = smtplib.SMTP()23         server.connect(mail_host)24         server.login(mail_user, mail_pass)25         server.sendmail(me, to_list, msg.as_string())26         server.close()27         return True28     except Exception, e:29         print str(e)30         return False31 32 if __name__ == '__main__':33     sub = "天才白痴梦"34     html = '<html></html>'35     if send_mail(mailto_list, sub, html):36         print "发送成功"37     else:38         print "发送失败"

4.发送邮件附件:邮件附件是图片

 1 def send_mail(to_list, sub, content): 2     me = "天才白痴梦"+"<"+mail_user+">" 3  4     msg = MIMEMultipart() 5     msg['Subject'] = sub    # 邮件主题 6     msg['From'] = me 7     msg['To'] = ";".join(to_list) 8  9     txt = MIMEText("天才白痴梦", _subtype='plain', _charset='utf8')10     msg.attach(txt)11 12     # # <b>:黑体  <i>:斜体13     # msgText = MIMEText('<b>Some <i>HTML</i> text</b> and an image.<img src="/static/imghwm/default1.png"  data-src="cid:image1"  class="lazy"  alt="" />good!', 'html', 'utf-8')14     # msg.attach(msgText)15     #16     # file1 = "F:\\1.jpg"17     # image = MIMEImage(open(file1, 'rb').read())18     # image.add_header('Content-ID', '<image1>')19     # msg.attach(image)20 21     att = MIMEText(open('F:\\1.jpg', 'rb').read(), 'base64', 'utf-8')22     att["Content-Type"] = 'application/octet-stream'23     att["Content-Disposition"] = 'attachment; filename="1.jpg"'24     msg.attach(att)25 26     try:27         server = smtplib.SMTP()28         server.connect(mail_host)29         server.login(mail_user, mail_pass)30         server.sendmail(me, to_list, msg.as_string())31         server.close()32         return True33     except Exception, e:34         print str(e)35         return False

5.发送群邮件:同时发送给多人

1 mailto_list = [""]  # 邮件接收方的邮件地址

上面这一行代码是邮件接收方的邮件地址,如果我们需要给多人发送邮件的话,就只需要把对方的邮件帐号绑在这一个列表里就ok了。

加密SMTP

使用标准的25端口连接SMTP服务器时,使用的是明文传输,发送邮件的整个过程可能会被窃听。要更安全地发送邮件,可以加密SMTP会话,实际上就是先创建SSL安全连接,然后再使用SMTP协议发送邮件。

方法:只需要在创建SMTP对象后,立刻调用starttls()方法,就创建了安全连接。

1 smtp_server = 'smtp.qq.com'2 smtp_port = 25    # 默认端口号为253 server = smtplib.SMTP(smtp_server, smtp_port)4 server.starttls()5 # 剩下的代码和前面的一模一样:6 server.set_debuglevel(1)     # 打印出和SMTP服务器交互的所有信息
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
HTML, CSS 및 JavaScript : 예제 및 실제 응용 프로그램HTML, CSS 및 JavaScript : 예제 및 실제 응용 프로그램May 09, 2025 am 12:01 AM

웹 개발에서 HTML, CSS 및 JavaScript의 역할은 다음과 같습니다. 1. HTML은 웹 페이지 구조를 구축하는 데 사용됩니다. 2. CSS는 웹 페이지의 모양을 아름답게하는 데 사용됩니다. 3. JavaScript는 동적 상호 작용을 달성하는 데 사용됩니다. 태그, 스타일 및 스크립트를 통해이 세 가지는 함께 현대 웹 페이지의 핵심 기능을 구축합니다.

 태그에서 Lang 속성을 어떻게 설정합니까? 이것이 중요한 이유는 무엇입니까? 태그에서 Lang 속성을 어떻게 설정합니까? 이것이 중요한 이유는 무엇입니까?May 08, 2025 am 12:03 AM

태그의 Lang 속성을 설정하는 것은 웹 접근성 및 SEO를 최적화하는 핵심 단계입니다. 1) 태그에 LANG 속성을 설정하십시오. 2) 다국어 컨텐츠에서는 다른 언어 부품에 대한 LANG 속성을 설정하십시오. 3) "en", "fr", "zh"와 같은 ISO639-1 표준을 준수하는 언어 코드를 사용하여 LANG 속성을 올바르게 설정하면 웹 페이지 및 검색 엔진 순위의 접근성을 향상시킬 수 있습니다.

HTML 속성의 목적은 무엇입니까?HTML 속성의 목적은 무엇입니까?May 07, 2025 am 12:01 AM

htmlattributesearsentialforenhancingwebelements'functionalityandAmpearance.theyaddinformationTodeFineBehavior, 외관 및 간호, WebsITESITERACTIVE, RAPITIVE 및 VVESILLY -CAMENTION.ATTRIBUTESLIKESRC, HREF, 클래스, 유형 및 디스티브 트랜스포트

HTML에서 목록을 어떻게 만드나요?HTML에서 목록을 어떻게 만드나요?May 06, 2025 am 12:01 AM

ToCreateAlistInhtml, useUnorderEdListandForOrdLists : 1) forUnderedList, wrapitemSinanduseForeachitem, renderingasabulletedList.2) forOrderEdlists, useandfornumberedLists, useandfornumberedlists, useandfornumberedlists, useandfornumberedlists, withTheyPeatTributeFferentNumberingStyles.

html in Action : 웹 사이트 구조의 예html in Action : 웹 사이트 구조의 예May 05, 2025 am 12:03 AM

HTML은 명확한 구조를 가진 웹 사이트를 구축하는 데 사용됩니다. 1) 태그를 사용하여 웹 사이트 구조를 정의하십시오. 2) 예는 블로그 및 전자 상거래 웹 사이트의 구조를 보여줍니다. 3) 잘못된 레이블 중첩과 같은 일반적인 실수를 피하십시오. 4) HTTP 요청을 줄이고 시맨틱 태그를 사용하여 성능을 최적화합니다.

HTML 페이지에 이미지를 어떻게 삽입합니까?HTML 페이지에 이미지를 어떻게 삽입합니까?May 04, 2025 am 12:02 AM

TOINSERTANIMAGEINTOANHTMLPAGE, USETHETAGWITHSRCANDALTATTRIBUTES.1) USEALTTEXTFORACCESSIBLEANDSEO.2) AMPLEMESSRCSETFORRESPONSIVEIMAGES.3) ApplyLazyLoadingWithLoading = "Lazy"TOOPTIMIZEPEROUCTION.4) OPTIMIZEPEPERCESIVEIMAGES

HTML의 목적 : 웹 브라우저가 컨텐츠를 표시 할 수 있도록합니다HTML의 목적 : 웹 브라우저가 컨텐츠를 표시 할 수 있도록합니다May 03, 2025 am 12:03 AM

HTML의 핵심 목적은 브라우저가 웹 컨텐츠를 이해하고 표시 할 수 있도록하는 것입니다. 1. HTML은 TO 등과 같은 태그를 통해 웹 페이지 구조와 컨텐츠를 정의합니다. 2. HTML5는 멀티미디어 지원을 향상시키고 소개 및 태그를 향상시킵니다. 3.html은 사용자 상호 작용을 지원하기위한 양식 요소를 제공합니다. 4. HTML 코드를 최적화하면 HTTP 요청 감소 및 HTML 압축과 같은 웹 페이지 성능이 향상 될 수 있습니다.

HTML 태그가 웹 개발에 중요한 이유는 무엇입니까?HTML 태그가 웹 개발에 중요한 이유는 무엇입니까?May 02, 2025 am 12:03 AM

htmltagsareessentialforwebdevelopmentasthuctureandenhancewebpages.1) thefinelayout, semantics 및 internactivity.2) semantictagsimproveAccessibility 및 sseo.3) appleasoftagscanoptimizeperformanceandenseRocRossercompatiber.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전