Python 3 는 SMTP 를 사용 하여 첨부 파일 메 일 을 보 냅 니 다.

1.SMTP 서 비 스 를 시작 하고 인증 코드 를 받 도록 설정 합 니 다.
첫 번 째 문장 을 참고 할 수 있 습 니 다.여 기 는 더 이상 군말 하지 않 겠 습 니 다.
2.Python 3 을 사용 하여 첨부 파일 이 있 는 메 일 을 보 냅 니 다.
0.사용 하 는 환경 은:
Python 3.6.3 (64bit)
PyCharm 2017.3 (64bit)
1.주의사항:
smtplib 를 호출 하여 간단 한 메 일 을 보 낼 때 smtplib.SMTP()방법 을 사용 하여 문제 가 없습니다.
그러나 메 일 에 첨부 파일 이 있 는 경우 smtplib.SMTP()방법 을 사용 하면'원 격 호스트 연결 거부'오류 가 발생 할 수 있 습 니 다.
이것 은 우리 가 메 일 을 보 낼 때 제3자 의 메 일 서버(예 를 들 어 왕 이 163 메 일,QQ 메 일 등)를 호출 하기 때 문 입 니 다.이 메 일 서버 들 은 안전 을 고려 하여 간단 하고 암호 화 되 지 않 은 smtplib.SMTP()방법 으로 메 일 을 직접 보 내 는 것 을 허락 하지 않 을 수도 있 습 니 다.안전 하고 암호 화 된 전송 을 거 친 smtplib.SMTP 를 사용 해 야 합 니 다.SSL()방법 이 있어 야 발송 에 성공 할 수 있 습 니 다.
2.MIME 형식:
MIME(Multipurpose Internet Mail Extensions)는 메시지 내용 유형 을 설명 하 는 인터넷 표준 이다.
MIME 메 시 지 는 텍스트,이미지,오디 오,비디오 및 기타 응용 프로그램 전용 데 이 터 를 포함 할 수 있 습 니 다.
쉽게 말 하면 우리 가 메 일 을 보 낼 때 첨부 파일 이 존재 하면 서로 다른 유형의 첨부 파일 은 해당 하 는 MIME 형식 으로 보 내야 한 다 는 것 이다.
구체 적 인 유형 은 참고 할 수 있다.
2.구현 코드:

import smtplib 
from email.header import Header 
from email.mime.text import MIMEText 
from email.mime.multipart import MIMEMultipart 
 
sender = '[email protected]' 
receiver = '[email protected]' 
smtpserver = 'smtp.163.com' 
username = 'XXXXX' 
password = 'XXXXX' 
mail_title = '  :        ' 
 
#            
message = MIMEMultipart() 
message['From'] = sender 
message['To'] = receiver 
message['Subject'] = Header(mail_title, 'utf-8') 
 
#        
message.attach(MIMEText('   ,       ', 'plain', 'utf-8')) 
 
#     1(   TXT     ) 
att1 = MIMEText(open('text1.txt', 'rb').read(), 'base64', 'utf-8') 
att1["Content-Type"] = 'application/octet-stream' 
att1["Content-Disposition"] = 'attachment; filename="text1.txt"' 
message.attach(att1) 
 
#     2(   JPG     ) 
att2 = MIMEText(open('123.jpg', 'rb').read(), 'base64', 'utf-8') 
att2["Content-Type"] = 'application/octet-stream' 
att2["Content-Disposition"] = 'attachment; filename="123.jpg"' 
message.attach(att2) 
 
#     3(   HTML     ) 
att3 = MIMEText(open('report_test.html', 'rb').read(), 'base64', 'utf-8') 
att3["Content-Type"] = 'application/octet-stream' 
att3["Content-Disposition"] = 'attachment; filename="report_test.html"' 
message.attach(att3) 
 
 
smtpObj = smtplib.SMTP_SSL() #   :           (          ),     SMTP_SSL   
smtpObj.connect(smtpserver) 
smtpObj.login(username, password) 
smtpObj.sendmail(sender, receiver, message.as_string()) 
print("      !!!") 
smtpObj.quit() 
3.발송 성공 후 수신 자가 받 은 메 일 은 다음 그림 과 같다.

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기