Python 3メール送信

1591 ワード

テスト済みの送信メールコード:
import smtplib
from email.mime.text import MIMEText
  
#   SMTP  
mail_host = "smtp.163.com"  # SMTP 
mail_user = "username"  #  
mail_pass = "passwd"  #  ( , )
  
sender = '[email protected]'  #  
receivers = ['[email protected]']  #  
  
  
content = 'Python Send Mail !'
title = 'Python SMTP Mail Test'  #  
message = MIMEText(content, 'plain', 'utf-8')  #  ,  ,  
message['From'] = "{}".format(sender)
message['To'] = ",".join(receivers)
message['Subject'] = title
  
try:
    smtpObj = smtplib.SMTP_SSL(mail_host, 465)  #  SSL ,  465
    smtpObj.login(mail_user, mail_pass)  #  
    smtpObj.sendmail(sender, receivers, message.as_string())  #  
    print("mail has been send successfully.")
except smtplib.SMTPException as e:
    print(e)

  
問題解決と注意点:
1.エラー:Error:A secure connection is requiered(such as ssl)
解決:メールボックスSSL検証の問題のため、smtplib.SMTP()をsmtplibに変更する.SMTP_SSL()、ポート番号465
2.エラー:535,b'Error:authentication failed'
解決:ユーザー名が正しくないため、コードのユーザー名はメールアドレス@の前の部分に記入するか、メールボックスに設定されたアカウントのニックネーム、例えば下の図のニックネームMorningとモザイク部分はユーザー名として使用できます.
 
3.SMTPサーバは、送信されたメールボックスに応じて選択することができ、コードで163メールボックスを使用するとmail_とするhost = "smtp.163.com"  
「smtp.126.com」「smtp.qq.com」などに変更できます
4.コードのパスワードmail_passは認証コードであり、メールボックスのパスワードではなく、第三者メールクライアントにログインするための専用パスワードです.
QQメールボックスは、設定→アカウント→認証コードを生成することができます.網易メールボックス126/163は、設定→クライアント認証パスワード