Как отправить электронное письмо с вложением, используя Python Flask / flask_mail - PullRequest
0 голосов
/ 17 апреля 2020

Я недавно начал свое приключение с python и только через пару недель go я обнаружил flask. Я пытаюсь отправить электронное письмо с файлом output.csv, прикрепленным с использованием flask. Файл output.csv был сохранен в результате отправки формы html из моей формы. html page.

myform.py

from flask import Flask, render_template, request
from flask_mail import Mail, Message
import csv

app = Flask(__name__)
app.config.update(dict(
    DEBUG = True,
    MAIL_SERVER = 'smtp.gmail.com',
    MAIL_PORT = 587,
    MAIL_USE_TLS = True,
    MAIL_USE_SSL = False,
    MAIL_USERNAME = 'myemail@gmail.com',
    MAIL_PASSWORD = '*****',
))

mail = Mail(app)


@app.route('/')
def myForm():
   return render_template('form.html')

@app.route('/steptwo',methods = ['POST', 'GET'])
def steptwo():
   if request.method == 'POST':

        id = request.form['id']
        name = request.form['name']
        email = request.form['email']
        website = request.form['website']
        requestPhoneNr = request.form['requestPhoneNr']
        requestTopic = request.form['requestTopic']
        requestDescription = request.form['requestDescription']
        requestOriginator = request.form['requestOriginator']

        fieldnames = ['requestPhoneNr', 'requestTopic', 'requestDescription', 'requestOriginator']


        with open('path/to/my/output.csv','a') as inFile:
            writer = csv.DictWriter(inFile, fieldnames=fieldnames)

            writer.writerow({'requestPhoneNr': requestPhoneNr, 'requestTopic': requestTopic, 'requestDescription': requestDescription, 'requestOriginator': requestOriginator})
        msg = Message('Sample title', sender = 'myemai@gmail.com',       recipients = ['myotheremail@gmail.com'])
        msg.body = request.form['id'] + request.form['name'] + request.form['email'] + request.form['website']
        with app.open_resource("path/to/my/output.csv") as fp:
            msg.attach("path/to/my/output.csv", "text/csv", fp.read())
        mail.send(msg)


        return 'Thanks for your input!'






if __name__ == '__main__':
   app.run(debug = True)

Решено !

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...