2015-09-09 4 views
0

У меня возникли проблемы с отправкой вложения FileField по электронной почте. Это должно отправить, но это не так. Есть ли что-то, что мне нужно настроить в моей учетной записи gmail, чтобы это работало?Отправка приложения FileField по электронной почте

settings.py

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 
EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = '[email protected]' 
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 говорит мне была предотвращена попытка входа в систему. Любая помощь? Благодаря!

+0

выключают 2 фактор проверки и позволяют приложениям использовать ваши учетные данные через gmail – taesu

+0

Как разрешить приложениям использовать мои учетные данные через gmail? –

+0

Попробуйте найти в Google. – taesu

ответ

0

Если вы не укажете тип mime в своем вызове .attach, Django попытается угадать тип mime для вас - возможно, он пытается правильно угадать тип mime, учитывая ваше вложение. Если тип mime неверен, gmail, скорее всего, откажет его при получении. Либо установить тип пантомимы именно:

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

или вы можете использовать метод 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)) 
Смежные вопросы