1로서 다음과 같다 :
가져 오기 smtplib 에서 email.message 에서 EmailMessage # smtplib 모듈은 메일 서비스의 전송을 담당 #의 smtplib의에 메시지 및 전송을 구축하기위한 책임이 email.message 모듈을 # 사용자 정의 SMTP 서버 주소 = smtp_server에 ' smtp.163.com ' #이 보낸 사람 주소의 정의 from_addr을 = " ***********@163.com " #은 암호 정의 = 암호 ' ********** ' #이 받는 사람의 정의 = to_addr을 " ****** ****@qq.com " # 생성 SMTP 접속 코네티컷 = smtplib.SMTP_SSL (smtp_server에, 465 ) conn.set_debuglevel ( . 1)를 Conn.login (from_addr는, 암호) #는 메시지 객체의 생성 MSG를 = EmailMessage () #의 메일 내용 설정 msg.set_content는 ( ' 안녕하세요, 파이썬을 사용하여 전자 메일을 보내는 방법을 테스트입니다 ' , ' 일반 ' , ' UTF-8 ' ) #는 메시지 제목 세트 [MSG를 ' 제목 ' ] = " 테스트 모듈 smtplib 메일 " [MSG ' 에서 ' =] from_addr [MSG ' 까지를 ' = to_addr # 송신 이메일 conn.sendmail (from_addr [to_addr] msg.as_string ()) # 退出连接 conn.quit ()
2, 일반적인 예외를 해결
2.1SMTPAuthenticationError
# 보낸 사람 주소의 정의 = from_addr " ***********@163.com " #이 암호 정의 암호를 = ' ********** ' #는 받는 사람을 정의 = to_addr " **********@qq.com " #는 SMTP 연결 만들기 코네티컷 주 = smtplib.SMTP_SSL (smtp_server에를, 465 ) conn.set_debuglevel ( . 1 ) conn.login (from_addr, 비밀번호)
암호에 conn.login (from_addr, 암호) 때문에이 오류가 발생합니다 클라이언트의 로그인 비밀번호하지 않습니다 다시 말을, 클라이언트의 로그인 암호 아닌 , 인증 코드, 다음 코드에 권한을 확보하는 방법을 보여줍니다
NetEase는 예로 들어 사서함 :
아래의 인터페이스에 로그인 한 후 :
POP3 / SMTP / IMAP 내부 설정 페이지로 클릭 한 다음 클라이언트를 클릭 화살표 라이센스 코드로 표시
당신은 당신이 리셋의 요구 사항에 따라 단계별로 한 다음에 암호로 다시 자신의 인증 코드를 사용 기억하지 않는 경우, 다시 기억하지 않는 경우 클라이언트 라이센스 키가 켜져 설정해야합니다.
2.2SMTPDataError
전자 메일 정보가 완전이 제공되지 않기 때문 이상 발생
#이 메시지 객체 생성 MSG를 = EmailMessage () #의 메일 내용 설정 msg.set_content가 ( ' 안녕하세요, 저는 파이썬을 사용하여 전자 메일을 보내는 방법을 테스트입니다 ' , ' 일반 ' , ' UTF-8 ' ) # 보내는 메일 conn.sendmail (from_addr [to_addr] msg.as_string ()) #의 종료 conn.quit ()
从上述代码中,我们知道从创建邮件对象开始,只设置了邮件内容,所有才会出现这样的错误,还有设置至少三个信息,这些信息会显示在你的邮件中。
# 邮件主题 msg['subject'] = "一封测试smtplib模块的邮件" # 邮件发送者 msg['from'] = from_addr # 邮件接收者 msg['to'] = to_addr
邮件对象添加这三个信息后,就能发送成功了。
3、参考链接
http://c.biancheng.net/view/2665.html
https://www.cnblogs.com/fengyiru6369/p/7472679.html
https://blog.csdn.net/qq_40423339/article/details/87866001