2017-11-04 3 views
0

Dieser Code wird mit ist für das Senden von E-Mail mit Anhang (sample.txt - Testdatei),senden E-Mail in Python 3.X

aber empfangen ist keine Post von und Neins Fehlern

geworfen wurden

i versuchte, eine Mail ohne den Anhang zu senden, und es funktionierte ...

Was mache ich falsch für Anbauteil?

def sendmail(): 
    try: 
     #... 
     msg.body = "Hello Flask message sent from Flask-Mail" 
     with app.open_resource("sample.txt") as fp: 
      msg.attach("sample.txt", "text/plain", fp.read()) 
     mail.send(msg) 
    except Exception as e: 
     raise e 
return "Check Your Inbox !!!" 
+0

Ich denke, dass Ihr Code gut aussieht. Versuchen Sie, "text/plain" wie folgt zu entfernen: 'msg.attach (" sample.txt ", fp.read())' oder versuchen Sie den vollständigen Pfad zur Datei. –

Antwort

0

Dieser Code unten funktioniert für mich. Ich benutze den SMTP-Server von gmail im Beispiel. Führen Sie dieses Programm zuerst

from flask import Flask 
from flask_mail import Mail 
from flask_mail import Message 

# Configure these 
sender = '[email protected]' 
recip = '[email protected]' 
image = 'example.png' 
mailpass = 'aabbcc' 

app = Flask(__name__) 
mail = Mail(app) 

app.extensions['mail'].server = 'smtp.gmail.com' 
app.extensions['mail'].port = 587 
app.extensions['mail'].use_tls = True 
app.extensions['mail'].username = sender 
app.extensions['mail'].password = mailpass 


@app.route('/') 
def sendmail(): 
    msg = Message('This is a test email', 
        sender=sender, 
        recipients=[recip]) 

    with app.open_resource(image) as f: 
     msg.attach('image.png', 'image/png', f.read()) 
    mail.send(msg) 
    return 'mail sent' 
app.run('localhost', 8888) 

dann den Rest Anruf auslösen:

curl localhost:8888/ 

ich das Programm von der Flasche nicht nur laufen, weil ich es in PyCharm bin debuggen. Wenn Sie alle oben genannten Schritte ausführen, wird das Bild in meiner Google Mail-Ansicht angezeigt.