>  기사  >  백엔드 개발  >  Python에서 자신의 사서함으로 이메일을 보내는 방법

Python에서 자신의 사서함으로 이메일을 보내는 방법

PHPz
PHPz앞으로
2023-05-12 15:16:152509검색

1. 이유

일상적인 개발 과정에서 애플리케이션의 상태를 모니터링하고, 제때에 문제를 발견하고, 이를 해결하기 위한 조치를 취해야 하는 경우가 많습니다. 이메일을 통해 알람 정보를 보내는 것이 일반적인 구현 방법입니다.

2. SMTP 서버 설정

QQ 메일박스 백엔드에 로그인하고 계정을 클릭하세요.

"POP3/SMTP 서비스" 및 "IMAP/SMTP 서비스" 항목을 찾아 "활성화"를 클릭하세요.

Python에서 자신의 사서함으로 이메일을 보내는 방법

인증코드는 성공적으로 열리면 확인하실 수 있습니다. 이 인증코드를 저장해주세요

Python에서 자신의 사서함으로 이메일을 보내는 방법

SSL을 사용하기 위한 일반적인 구성은 다음과 같습니다.

메일 수신 서버: pop.qq.com, SSL 사용 , 포트 번호 995

보내는 이메일 서버: smtp.qq.com, SSL 사용, 포트 번호 465 또는 587

계정 이름: QQ 메일함 계정 이름(VIP 계정 또는 Foxmail 계정이 있는 경우 계정 이름은 전체 이메일 주소를 입력하세요)

비밀번호: QQ 메일함 비밀번호

이메일 주소: QQ 메일함의 전체 이메일 주소

3. Python을 사용하여 전송하세요

소스 코드를 먼저 살펴보세요

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
 
# 发件人信息
sender_email = "657029702@qq.com"
sender_password = "上文申请的授权码"
 
# 收件人信息
recipient_email = "493614550@qq.com"
 
# 构造邮件对象
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = recipient_email
msg['Subject'] = "这是一封测试邮件"
 
# 添加正文
body = "这是一封测试邮件,用Python发送。"
msg.attach(MIMEText(body, 'plain'))
 
# 添加附件
with open("example.pdf", "rb") as attachment:
    part = MIMEApplication(attachment.read(), _subtype='pdf')
    part.add_header('Content-Disposition', 'attachment', filename="example.pdf")
    msg.attach(part)
 
# 发送邮件
with smtplib.SMTP_SSL('smtp.qq.com', 465) as smtp:
    smtp.login(sender_email, sender_password)
    smtp.sendmail(sender_email, recipient_email, msg.as_string())

세 번째- 파티 라이브러리 smtplib는 여기에서 사용됩니다. 그냥 설치하세요

여기에 첨부 파일을 추가하고 example.pdf를 스크립트와 같은 디렉터리에 넣습니다

Python에서 자신의 사서함으로 이메일을 보내는 방법

완벽해요!

5. 보충

Python은 단순히 이메일을 보내는 것 외에도 정기적으로 이메일을 보낼 수도 있습니다. 다음은 모든 사람에게 도움이 되기를 바랍니다.

python 자동 일괄 이메일 스크립트

'''''
该模块使自动发送邮件的模块
模块初始化时需要设置:
sender:发送人
reciver:接收者
smtpServer:发送人的服务器类型
password:登录命令
subject:邮件标题
datafile:数据文件
文件包含六个函数:
senderLogin():连接服务并登录服务
setSubject():设置邮件标题
SendMessage():邮件发送的信息
sendMail():发送邮件
quitMail():关闭邮件服务
run():执行登录、设置邮件标题、设置邮件发送信息、发送邮件、关闭邮件服务
'''

import smtplib
from mangerResultFile import FileManger
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

class AutoMail(object):
    def __init__(self,sender,reciver,smtpServer, password,subject,datafile):
        #设置发送人
        self.sender=sender
        #设置登录密码
        self.password=password
        #设置接收者
        self.reciver=reciver
        #设置邮件标题
        self.subject=subject
        #设置附件路径
        self.datafile=datafile
        #设置发送邮件服务
        self.smtpServer=smtpServer
        #创建一个smtp实例
        self.smtp = smtplib.SMTP()
        #设置下发送信息包含的类型的信息体
        self.msgRoot =MIMEMultipart('related')
        #调用run函数运行
        self.run()
  
    #发送用户登录
    def senderLogin(self):
        #通过smtp实例的connect方法连接发送邮件服务
        self.smtp.connect(self.smtpServer)
        #通过smtp实例的login方法登录发送邮件服务
        self.smtp.login(self.sender,self.password)
 
    def setSubject(self):
        #设置邮件标题
        self.msgRoot['Subject']=self.subject
        
    def SendMessage(self):
        #读取附件信息到att中
        att =MIMEText(open( self.datafile, 'rb').read(), 'base64', 'utf8')
        #设置att的内容类型
        att["Content-Type"]= 'application/octet-stream'
        #给附件设置一个文件名
        att["Content-Disposition"]= 'attachment; '+'filename='+FileManger().getLastFile()+''
        
        self.msgRoot.attach(att)
    
    def sendMail(self):
        #发送邮件
        self.smtp.sendmail(self.sender,self.reciver,self.msgRoot .as_string())
    
    def quitMail(self):
        #退出邮件服务
        self.smtp.quit()
        
    def run(self):
        
        try:
            self.senderLogin()
            self.setSubject()
            self.SendMessage()
            self.sendMail()
            self.quitMail()

   print "send success...."
   except Exception,e:
   
   print e
   def test():
       #创建一个FileManger实例
       fm=FileManger()
       sender ='wang@163.com'
       receiver ='e.wang@163.com'
       smtpserver ='smtp.163.com'
       password =' '
       ject= 'XQL Autom excut project'
       filpath=fm.getLastFileWithPath()
      
      try:
          AutoMail(sender,receiver,smtpserver,password,ject,filpath)
         
         except Exception,e:
print e

if __name__=="__main__":
    test()

위 내용은 Python에서 자신의 사서함으로 이메일을 보내는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제