0
ロゴを表示したpythonで電子メールを送信したいと思います。画像は同じディレクトリ内のpng画像です。PythonでPNG画像を添付する電子メール
私は目的のためにここで見つけたシンプルなコードを使用していますが、自分のアカウントに送信するとイメージはありません。イメージを生成するために参照する添付ファイルはありません。誰かが私に行方不明を教えてもらえますか?ここで
from tkinter import *
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
import csv
import time
from string import Template
import warnings
root = Tk()
root.geometry('200x200')
email_label = Label(root, text="Enter your email")
email_label.pack()
username = Entry(root, width = 30)
username.pack()
password_label = Label(root, text="Enter your password")
password_label.pack()
password = Entry(root, show="*", width = 30)
password.pack()
def add_var():
a = 0
user_name = username.get()
pass_word = password.get()
with open("emailtk.csv") as f:
reader = csv.reader(f)
for row in reader:
a+=1
time.sleep(3)
try:
address = row[0]
first_name = row[1]
last_name = row[2]
name = first_name+last_name
company = row[4]
print("Event", a)
print("Will now send an email to %s %s at %s at %s" % (first_name, last_name, company, address))
msg = MIMEMultipart('alternative')
msg['Subject'] = "Link"
msg['From'] = user_name
msg['To'] = address
html = """\
<html>
<head></head>
<body>
<p>
stuff
</p>
</body>
</html>
""".format(n = name, org = company)
part1 = MIMEText(html, 'html')
msg.attach(part1)
img = "logo.png"
img_data = open(img, "rb").read()
image = MIMEImage(img_data, name = os.path.basename(img))
msg.attach(image)
msg.attach(msgImage)
s = smtplib.SMTP('Server.com', Socket)
s.ehlo()
s.starttls()
s.login(user_name,pass_word)
s.sendmail(user_name, address, msg.as_string())
print("email sent")
s.quit()
except:
pass
print("Done")
button = Button(root, text = "Submit", command = add_var)
button.pack()
root.mainloop()
私は画像を添付するために使用していたコードです:
img = "logo.png"
img_data = open(img, "rb").read()
image = MIMEImage(img_data, name = os.path.basename(img))
msg.attach(image)
あなたはそれを受け取ると、メッセージに表示される実際のヘッダーを表示する必要があります。別のプラットフォームの誰かに送信すると、ロゴが表示されますか?同じプラットフォーム上の別のアカウントに送信するとロゴが表示されますか?メッセージが送信された後で**ファイルを閉じてみてください( 's.sendmail(user_name、address、msg.as_string()); fp.close()') – sabbahillel
私が試している別のアプローチを示してください、しかしまだ運がありません。実際のメールと同じヘッダーを意味する場合は、そこに添付ファイルはありません。 – SVill
質問に表示される実際のヘッダーを表示する必要があります。また、別のアカウントまたは別のプラットフォームで受信したメールを確認します。 – sabbahillel