Невозможно добавить файл в виде встроенной фляги Python с вложением с помощью CID - PullRequest
0 голосов
/ 01 апреля 2019

Я часами искал решение, но безрезультатно.Я пытаюсь включить некоторые изображения в автоматически генерируемые электронные письма, и столкнулся с некоторыми проблемами.Я не могу включить фактический URL, поскольку gmail полностью блокирует изображения, поэтому я пытаюсь отправить их как вложения, а затем использую Cids для ссылки на вложения.Проблема в том, что я не нашел способ сделать это.Любая помощь будет туз.

Я использую Python 3.6 с Apache2 на сервере Ubuntu.Я пытался кодировать изображения в base64, но это не сработало вообще.изображения в электронном письме просто не показывались.

def createVoucher(email, expiry):
    voucherId = str(uuid.uuid4())
    email = email
    value = 1
    expiryDate = expiry
    redeemed = 1
    connection = mysql.get_db()
    cursor = connection.cursor()
    cursor.execute("INSERT INTO vouchers (VoucherID, Value, ExpiryDate, Redeemed, Email) VALUES (%s,%s,%s,%s,%s)", (voucherId, value, expiryDate, redeemed, email))
    msgBody = render_template('admin/eVoucherEmail.html', voucherId=voucherId, expiry=expiry)
    msg = Message('New Sunday Funday eVoucher Received', sender = MAIL_USERNAME, recipients = [email])
    msg.html = msgBody
    with app.open_resource("static/img/Facebook.jpg") as fp:
        msg.attach("Facebook.jpg", "image/jpg", fp.read())
    mail.send(msg)    
    connection.commit()

Таким образом, опубликованный код прекрасно работает, прикрепляя файл, он просто назначает идентификатор контента, который я могу использовать там, где борюсь.

...