解決Python STMP送信メールでsocket.error: [Errno 10061]
4336 ワード
PythonがSTMPでメールを送る過程でsocketが現れた.Error:[Errno 10061]の問題です.次は問題のあるコードです.
クエリーの後、sendmailをホストにインストールする必要があることがわかりました.上記のコードは正常に実行できます.私はsendmailをインストールしていないので、知りたいことは自分でsendmailを使ってメールを送ることができます.本機にsendmailがインストールされていない場合は、他のメールサービス業者が提供するSMTPアクセスを利用する必要があります(ここでは163メールボックスを使用しています).
これでメールの送信が成功しました.注意:使用するsenderとreceiversは、対応するメールボックス設定でSMTPサービスを開く必要があります.そうしないと、送信は成功しません.
References:菜鳥チュートリアル-Pythonチュートリアル
# -*- coding:utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = '***@**.com'
receivers = ['***@**.com'] # , QQ
# : , plain , utf-8
message = MIMEText('Python SMTP ', 'plain', 'utf-8')
message['From'] = Header("From ", 'utf-8')
message['To'] = Header("To ", 'utf-8')
subject = 'Python SMTP '
message['Subject'] = Header(subject, 'utf-8')
try:
smtpObj = smtplib.SMTP('localhost')
smtpObj.sendmail(sender,receivers,message.as_string())
print " "
except smtplib.SMTPException:
print "Error: "
クエリーの後、sendmailをホストにインストールする必要があることがわかりました.上記のコードは正常に実行できます.私はsendmailをインストールしていないので、知りたいことは自分でsendmailを使ってメールを送ることができます.本機にsendmailがインストールされていない場合は、他のメールサービス業者が提供するSMTPアクセスを利用する必要があります(ここでは163メールボックスを使用しています).
# -*- coding:utf-8 -*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# SMTP
mail_host="smtp.163.com" #
mail_user="***@163.com" #
mail_pass="***" #
sender = '***@163.com'
receivers = '[***@163.com]' # , QQ
message = MIMEText('Python SMTP ', 'plain', 'utf-8')
message['From'] = Header("From ",'utf-8')
message['To'] = Header("To ", 'utf-8')
subject = 'Python SMTP '
message['Subject'] = Header(subject, 'utf-8')
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, 25) # 25 SMTP
smtpObj.login(mail_user,mail_pass)
smtpObj.sendmail(sender, receivers,
message.as_string())
print " "
except smtplib.SMTPException:
print "Error: "
これでメールの送信が成功しました.注意:使用するsenderとreceiversは、対応するメールボックス設定でSMTPサービスを開く必要があります.そうしないと、送信は成功しません.
References:菜鳥チュートリアル-Pythonチュートリアル