python 모듈 smtplib 일반 텍스트 메 일 발송 기능 구현

오늘 은 Python 의 smtplib 라 이브 러 리 를 사용 하여 메 일 을 보 내 는 방법 을 배 웠 습 니 다.중간 에 여러 가지 오류 와 어려움 을 겪 었 습 니 다.다행히 모두 해결 되 었 습 니 다.다음은 나의 이 경험 을 이야기 하 겠 다.
메 일 설정
메 일 을 왜 설정 합 니까?구체 적 으로 뭘 설정 해 야 하나 요?
우리 가 신청 한 일부 무료 메 일 은 기본적으로 smtp/pop 프로 토 콜 을 열지 않 기 때문이다.
SMTP 는 메 일 을 보 내 는 데 사용 되 는 컴퓨터 네트워크 에서 응용 층 프로 토 콜 중 하나 입 니 다.POP 는 메 일 을 받 을 때 사용 하 는 컴퓨터 네트워크 의 응용 층 프로 토 콜 중 하나 이다.이것 은 모두 이론 적 인 지식 이다.컴퓨터 네트워크 라 는 수업 을 들 은 사람 은 틀림없이 다 알 고 있 을 것 이 니 더 이상 말 하지 않 겠 다.
설정 은 이 서 비 스 를 시작 하 는 것 입 니 다.그렇지 않 으 면 우 리 는 Python 코드 로 메 일 을 보 내 고 받 는 것 을 제어 할 수 없다.
우리 가 설정 이 완 료 된 후에 시스템 은 우리 에 게 메 일 클 라 이언 트 의 인증 코드 를 알려 줄 것 입 니 다.작용 은 우리 가 로그 인 할 때 원래 의 로그 인 비밀 번 호 를 대체 하 는 것 이다.모두 완벽 하 게 보존 해 야 합 니 다.내 가 있 는 이곳 은 163 개의 메 일 을 사용 하기 때문에 스스로 이 권한 수여 번 호 를 설정 할 수 있다.
코드 로 메 일 보 내기
아니면 코드 를 먼저 보고 연구 하 는 전략 에 따라.다음 과 같다.

# coding:utf-8

import smtplib
from email.mime.text import MIMEText
from email.header import Header

"""
         smtp    ,           , ssh 
"""


sender = "[email protected]"
#    ,     
receivers = ['[email protected]']

#     :       ,   plain      ,        
message = MIMEText('              。Pure Text Here!','plain','utf-8')
message['From'] = Header('  Mark','utf-8')
message['To'] = Header('    ','utf-8')

subject = '      ,        '
message['Subject'] = Header(subject,'utf-8')

try:
 smtpObj = smtplib.SMTP()
 smtpObj.connect('smtp.163.com',25)
 smtpObj.login(sender,'        ')
 smtpObj.sendmail(sender,receivers,message.as_string())
 smtpObj.quit()
 print '        '
except smtplib.SMTPException,e:
 print e.message
테스트 결과:
D:\Software\Python2\python.exe E:/Code/Python/MyTestSet/mail/PureText.py
메 일이 성공 적 으로 발송 되 었 습 니 다.
Process finished with exit code 0

성공 적 으로 보 냈 습 니 다.
코드 탐색
다음은 메 일 발송 이 이 루어 지 는 절 차 를 깊이 연구 해 보 겠 습 니 다.우 리 는 가장 중요 한 것 은 아래 의 이러한 코드 라 는 것 을 알 았 다.

smtpObj = smtplib.SMTP()
smtpObj.connect('smtp.163.com',25)
smtpObj.login(sender,'        ')
smtpObj.sendmail(sender,receivers,\
message.as_string()
smtpObj.quit()
알 수 있 듯 이 주로 다음 과 같은 절 차 를 거 쳤 다.
SMTP 서비스 획득접속 서버
아 날로 그 클 라 이언 트 로그 인
메 일 발송
로그 인 을 종료 합 니 다그 중에서 핵심 은 클 라 이언 트 로그 인과 메 일 을 보 내 는 두 단계 이다.아 날로 그 로그 인 을 할 때 주의해 야 할 것 은 자신의 권한 수여 코드 를 사용 하면 됩 니 다.어렵 지 않 습 니 다.메 일 을 보 낼 때 는 인 자 를 주의해 야 합 니 다.보 내 는 사람 은 하나 이 고 받 는 사람 은 하나의 목록 입 니 다.그 안에 많은 받 는 사람 이 있 을 수 있 습 니 다.
다른 주의해 야 할 것 은 MIME 형식의 데 이 터 를 사용 하고 utf-8 인 코딩 을 사용 하면 된다 는 것 이다.비지 능 관련 내용 에 속한다.그 러 니까 너무 신경 쓰 지 마.쓸 줄 알 면 돼.
그 러 고 보 니 메 일 같은 것 도 어렵 잖 아 요.(^ ^)히히...
잘못된 총화
오류 1:500,530 등 5 로 시작 하 는 오류,대체로 왜 ssh 가 이상 합 니까?약간의 웹 상식 은 모두 알 고 있 습 니 다.5 로 시작 하 는 오류 코드 는 일반적으로 서버 내부 의 오류 이기 때문에 이것 은 기본적으로 우리 의 코드 가 잘못 되 지 않 았 다 는 것 을 판단 할 수 있 습 니 다.우리 의 주요 배열 방향 은 서버 쪽 이 어야 합 니 다.이때,우 리 는 자신의 메 일 박스 의 SMTP/POP 서비스 가 열 렸 는 지 확인 해 야 한다.
오류 2:권한 수여 코드 가 자신의 메 일 박스 이전의 비밀번호 로 작성 되 지 않 았 거나 오류 알림 은 일반적으로 인증 과 관련 된 것 입 니 다.이 점 은 저급한 잘못 에 속한다.자신의 SMTP/POP 서 비 스 를 설정 한 후에 시스템 은 문자 메 시 지 를 보 내 사용자 에 게 원래 의 비밀번호 대신 인증 코드 를 사용 하여 메 일 에 로그 인 하 라 고 알려 주기 때문이다.그 러 니까 니 인증 코드 로 로그 인 하 는 거지.
오류 3:코드 의 오류.이것 은 더욱 해 서 는 안 된다.필수 항목 을 적 게 쓰 거나 인 코딩 을 추가 하지 않 은 등 비슷 한 오 류 는 우리 가 극력 피해 야 하기 때문에 가능 한 한 자신의 코드 가 정확 하 다 는 것 을 보증 해 야 한다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기