0
私はできる限りこれを説明しようとします。 私が手がかりにしているのは、データベースからデータを収集し、その情報をカスタムのコード化/フォーマットされたHTML/CSS電子メールに入れることです。フォーマット済みのリストを電子メールで送信
このコードを実行するとエラーが発生します:TypeError: 'list'オブジェクトを暗黙的に 'str'に変換できません。 データベースから取得したデータは、各セクションのリスト内の8文字列の結果を戻すので、なぜそのエラーが戻ってくるのか分かります。私は電子メール内のすべてのデータを自動的に埋め込み、このような電子メールのための適切な書式で送信できるようにする方法についてはあまり気にしていません。
import smtplib
import sys
import sqlite3
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
DATABASE = 'Blocs.db'
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
print("Getting blocs from server...")
conn = sqlite3.connect(DATABASE)
cur = conn.cursor()
cur.execute("SELECT weburl FROM Blocs")
weburl_data = cur.fetchall()
cur.execute("SELECT imgurl FROM Blocs")
imgurl_data = cur.fetchall()
cur.execute("SELECT title FROM Blocs")
title_data = cur.fetchall()
cur.execute("SELECT notes FROM Blocs")
notes_data = cur.fetchall()
conn.commit()
conn.close()
from_email = "[email protected]"
from_pwd = "Password"
to_email = "[email protected]"
msg = MIMEMultipart('html')
msg['Subject'] = "Test SMTPlib Message"
msg['From'] = "[email protected]"
msg['To'] = "[email protected]"
firstHTML = '<html> <head></head> <body><table> <tr>'
bloc_one = weburl_data
secondHTML = '</tr></table></body></html>'
new_html = firstHTML + bloc_one + secondHTML
msg.attach(MIMEText(new_html, 'html'))
print(msg)
mail = smtplib.SMTP('outlook.office365.com', 587)
mail.ehlo()
mail.starttls()
mail.login("[email protected]", "Password")
mail.sendmail("[email protected]", "[email protected]", msg.as_string())
print("email sent")
mail.quit()
たぶん、あなたはエラーが発生した何行に言うことができます?! – astraTiCon
imは 'new_html = firstHTML + bloc_one + secondHTML'でエラーが発生していると仮定します。 bloc_oneは依然としてリストであるためです。そのリストを以下の答えのように文字列に変換する必要があります。 – putonspectacles