1. ホーム
  2. python

[解決済み] TypeError: 'str' と 'list' オブジェクトをメールに連結することはできません。

2022-02-04 07:40:45

質問内容

Pythonでメール送信の作業をしています。今、私は電子メールでリストのエントリを送信したいのですが、私は "TypeError: cannot concatenate 'str' and 'list' objects" というエラーに遭遇しており、それをデバッグする考えがありません。以下は、私が持っているコードです。私はこの言語ではまだ新しい(3週間)ので、私は少しバックグラウドを持っています。

import smtplib
x = [2, 3, 4] #list that I want to send
to = '' #Recipient
user_name = '' #Sender username
user_pwrd = '' #Sender Password
smtpserver = smtplib.SMTP("mail.sample.com",port)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo()
smtpserver.login(user_name,user_pwrd)

#Header Part of the Email       
header = 'To: '+to+'\n'+'From: '+user_name+'\n'+'Subject: \n'
print header

#Msg 
msg = header + x #THIS IS THE PART THAT I WANT TO INSERT THE LIST THAT I WANT TO SEND. the type error occurs in this line

#Send Email     
smtpserver.sendmail(user_name, to, msg)
print 'done!'

#Close Email Connection
smtpserver.close()

解決方法は?

問題は msg = header + x . を適用しようとしているのですね。 + 演算子を文字列とリストに適用します。

をどのようにしたいのかがよくわからないのですが。 x を表示させたいのですが、"[1, 2, 3]"のようにしたい場合、必要です。

msg = header + str(x)

することもできます。

msg = '{header}{lst}'.format(header=header, lst=x)