Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- table
- Spring
- mybatis
- SPC
- es6
- MSSQL
- hadoop
- Eclipse
- Kotlin
- NPM
- 보조정렬
- Python
- Sqoop
- IntelliJ
- JavaScript
- Java
- SSL
- window
- tomcat
- SQL
- Android
- mapreduce
- Express
- plugin
- 공정능력
- vaadin
- GIT
- R
- xPlatform
- react
Archives
- Today
- Total
DBILITY
python 메일보내기 본문
반응형
smtplib 사용
별도로 sendmail server를 구축하고, dns mx record 등록하는 등 작업이 필요하겠지만, 언제 다하겠나 생각도 안남
회사나 gmail smtp를 사용해도 된다.
gmail은 다음과 같은 SMTPAuthenticationError가 발생한다.
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted.
Learn more at\n5.7.8 https://support.google.com/mail/?p=BadCredentials k9sm4572812pfu.109 - gsmtp')
예전에 javamail로는 PasswordAuthentication을 처리하면 됐던거 같던데 지금은 모르겠다.
굳이 Gmail을 통해 보내야 한다면 Google계정 -> 보안 -> 보안 수준이 낮은 앱 액세스에서 사용으로 설정한다.
Google IMAP정보는 다음과 같다.
- plain text
import smtplib from email.mime.text import MIMEText mail_text = 'python send mail' mail_msg = MIMEText(mail_text) mail_msg['Subject'] = 'python mail test' mail_msg['From'] = '보내는주소' mail_msg['To'] = '받는주소' print(mail_msg.as_string()) smtp = smtplib.SMTP('메일서버주소', 25) #smtp.set_debuglevel(True) #smtp.ehlo() smtp.starttls() #smtp.ehlo() smtp.login('사용자아이디', '비밀번호') smtp.sendmail('보내는주소, '받는주소', mail_msg.as_string()) smtp.quit() smtp.close()
- html
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart mail_msg = MIMEMultipart('alternative') mail_html = """<h1>python send mail</h1> <p>hello~~</p> """ mail_msg.attach(MIMEText(mail_html, 'html')) mail_msg['Subject'] = 'python mail test html' mail_msg['From'] = '보내는주소' mail_msg['To'] = '받는주소' print(mail_msg.as_string()) smtp = smtplib.SMTP('메일서버주소', 25) #smtp.set_debuglevel(True) #smtp.ehlo() smtp.starttls() #smtp.ehlo() smtp.login('사용자아이디', '비밀번호') smtp.sendmail('보내는주소, '받는주소', mail_msg.as_string()) smtp.quit() smtp.close()
- file attach
다음과 같이 첨부포함 도착import os import smtplib from email.mime.text import MIMEText from email.mime.base import MIMEBase from email.mime.multipart import MIMEMultipart from email import encoders mail_text = 'python send mail' mail_msg = MIMEMultipart() mail_msg['Subject'] = 'python mail test' mail_msg['From'] = '보내는주소' mail_msg['To'] = '받는주소' mail_msg.attach(MIMEText(mail_text, 'plain', 'utf-8')) print(mail_msg.as_string()) # file read file_path = r'.\images\photo1.jpg' with open(file_path, 'rb') as attach_file: part = MIMEBase('application', 'octet-stream') part.set_payload(attach_file.read()) # base64 encoding encoders.encode_base64(part) part.add_header('Content-Disposition', 'attachment; filename={}'.format(os.path.basename(file_path))) mail_msg.attach(part) smtp = smtplib.SMTP('메일서버주소', 25) # smtp.set_debuglevel(True) # smtp.ehlo() smtp.starttls() # smtp.ehlo() smtp.login('아이디', '비밀번호') smtp.sendmail('보내는주소', '받는주소', mail_msg.as_string()) smtp.quit() smtp.close()
반응형
'python' 카테고리의 다른 글
python matplot line chart example (0) | 2021.08.25 |
---|---|
python regular expression ( 정규 표현식 ) (0) | 2021.08.20 |
python 사진 이미지 다루기(image open, resize) (0) | 2021.08.19 |
python requests 헤더(header), 쿠키(cookie) 추가하기 (0) | 2021.08.19 |
python class (0) | 2021.08.19 |
Comments