簡體   English   中英

通過電子郵件發送FileField附件

[英]Sending a FileField attachment by email

我在通過電子郵件發送FileField附件時遇到問題。 這應該發送,但不發送。 我必須在我的gmail帳戶中進行配置才能正常工作嗎?

settings.py

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'email@gmail.com'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

views.py

#i.output is the FieldFile
message = 'Thanks for using our website!'
email = EmailMessage('Analysis', message, settings.EMAIL_HOST_USER, [toEmail])
email.attach(filename, i.output.read())
email.send()

我什至收到Gmail發出的電子郵件,告訴我阻止了登錄嘗試。 有什么幫助嗎? 謝謝!

如果您未在.attach調用中指定mime類型,則Django會嘗試為您猜測mime類型-在給定附件的情況下,正確猜測mime類型可能會很困難。 如果mime類型不正確,gmail可能會在收據上將其退回。 要么專門設置mime類型:

email.attach('image_name.png', img_data, 'image/png')

或者,如果您希望Django嘗試為您解決問題,則可以使用email.attach_file方法:

email = EmailMessage(subject='Analysis', body=message, 
      from_email=settings.EMAIL_HOST_USER, to=[toEmail])
email.attach_file(filename)
email.send(fail_silently=not(settings.DEBUG))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM