파이썬은 어떻게 보내나요? Python으로 이메일을 보내는 세 가지 방법 소개

不言
풀어 주다: 2018-10-18 17:19:14
앞으로
3387명이 탐색했습니다.

이 글의 내용은 PHP가 SwooleTaskWorker를 사용하여 Mysql의 비동기 작업(코드)을 구현하는 방법에 대한 내용입니다. 필요한 참고 자료가 있으면 도움이 될 것입니다.

Python에서 이메일을 보내는 방법에는 메일 서버에 로그인하는 방법, smtp 서비스를 사용하는 방법, sendmail 명령을 호출하는 방법이 있습니다.

Python에서 이메일을 보내는 방법은 메일에 로그인하여 보내는 방법이 비교적 간단합니다. 서비스는 Linux에서도 사용할 수 있습니다. sendmail 명령을 호출하여 이메일을 보낼 수도 있고 로컬 또는 원격 SMTP 서비스를 사용하여 이메일을 보낼 수도 있습니다. 이 Mipu 블로그에서는 먼저 이메일을 보내고 기록하는 몇 가지 간단한 방법을 소개합니다. HTML 이메일, 첨부 파일 등도 지원됩니다. 필요할 때 문서를 확인하세요.

1. 메일 서버에 로그인합니다.

smtp를 통해 타사 smtp 사서함에 로그인하여 포트 25 및 465를 지원하는 이메일을 보냅니다.

vim python_email_1.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#
# author: mimvp.com
# 2015.10.05
import smtplib  
from email.mime.text import MIMEText  
smtpHost = 'smtp.exmail.qq.com' 
sender = 'robot@mimvp.com' 
password = "mimvp-password" 
receiver = 'yanggang@mimvp.com'
content = 'hello mimvp.com' 
msg = MIMEText(content)  
msg['Subject'] = 'email-subject' 
msg['From'] = sender  
msg['To'] = receiver  
## smtp port 25
smtpServer = smtplib.SMTP(smtpHost, 25)         # SMTP
smtpServer.login(sender, password)  
smtpServer.sendmail(sender, receiver, msg.as_string())  
smtpServer.quit()  
print 'send success by port 25' 
 
## smtp ssl port 465
smtpServer = smtplib.SMTP_SSL(smtpHost, 465)    # SMTP_SSL
smtpServer.login(sender, password)  
smtpServer.sendmail(sender, receiver, msg.as_string())  
smtpServer.quit()  
print 'send success by port 465'
로그인 후 복사

다음 명령을 실행합니다:

$ python python_email_1.py 
send success by port 25
send success by port 465
로그인 후 복사

결과를 보내면 두 개의 이메일을 받게 됩니다. 아래와 같이 이메일 중 하나를 스크린샷하세요.

파이썬은 어떻게 보내나요? Python으로 이메일을 보내는 세 가지 방법 소개

2. smtp 서비스를 사용하세요.

테스트가 실패했습니다. 건너뛰거나 메시지를 남겨서 수정하세요.

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#
# author: mimvp.com
# 2015.10.05
 
 
import smtplib  
from email.mime.text import MIMEText  
import subprocess
   
smtpHost = 'smtp.exmail.qq.com' 
sender = 'robot@mimvp.com' 
password = "mimvp-password" 
receiver = 'yanggang@mimvp.com'
   
content = 'hello mimvp.com' 
msg = MIMEText(content)   
   
   
 
if __name__ == "__main__":   
    p = subprocess.Popen(['/usr/sbin/sendmail', '-t'], stdout=subprocess.PIPE)  
    print(str(p.communicate()))
    p_res = str(p.communicate()[0])
    msg = MIMEText(p_res)
 
    msg["From"] = sender  
    msg["To"] = receiver  
    msg["Subject"] = "hello mimvp.com" 
    s = smtplib.SMTP(smtpHost)  
    s.login(sender, password)
    s.sendmail(sender, receiver, msg.as_string())  
    s.quit()  
    print 'send success'
로그인 후 복사

3. sendmail 명령 호출

기본 Linux 자체 호출 sendmail 서비스는 sendmail 백그라운드 프로세스를 시작하지 않고 보낸 사람에게 로그인을 요구하지 않고 이메일을 보냅니다. 이메일 보낸 사람은 제한 없이 어떤 이름이든 될 수 있습니다.

특별 참고 사항: sendmail 명령은 기본적으로 포트 25를 사용하여 이메일을 보냅니다. Alibaba Cloud, Tencent Cloud 등은 포트 25를 차단했기 때문에 이 예제는 포트 25가 활성화된 시스템에서 테스트해야 합니다.

vim python_email_3.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#
# author: mimvp.com
# 2015.10.05
  
  
from email.mime.text import MIMEText
from subprocess import Popen, PIPE
import commands
  
import sys 
reload(sys)
sys.setdefaultencoding('utf-8')
  
def send_mail(sender, recevier, subject, html_content):
        msg = MIMEText(html_content, 'html', 'utf-8')
        msg["From"] = sender
        msg["To"] = recevier
        msg["Subject"] = subject
        p = Popen(["/usr/sbin/sendmail", "-t"], stdin=PIPE)
        p.communicate(msg.as_string())
  
  
sender = 'robot@mimvp.com'
recevier = 'yanggang@mimvp.com'
subject = 'sendmail-subject'
html_content = 'hello mimvp.com'
send_mail(sender, recevier, subject, html_content)
로그인 후 복사

실행 명령:

python python_email_3.py
로그인 후 복사

수신 결과:

파이썬은 어떻게 보내나요? Python으로 이메일을 보내는 세 가지 방법 소개

위 내용은 파이썬은 어떻게 보내나요? Python으로 이메일을 보내는 세 가지 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿