2017-01-20 17 views
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) 
+0

あなたはそれを受け取ると、メッセージに表示される実際のヘッダーを表示する必要があります。別のプラットフォームの誰かに送信すると、ロゴが表示されますか?同じプラットフォーム上の別のアカウントに送信するとロゴが表示されますか?メッセージが送信された後で**ファイルを閉じてみてください( 's.sendmail(user_name、address、msg.as_string()); fp.close()') – sabbahillel

+0

私が試している別のアプローチを示してください、しかしまだ運がありません。実際のメールと同じヘッダーを意味する場合は、そこに添付ファイルはありません。 – SVill

+0

質問に表示される実際のヘッダーを表示する必要があります。また、別のアカウントまたは別のプラットフォームで受信したメールを確認します。 – sabbahillel

答えて

関連する問題