Как отправить запрос на мероприятие по электронной почте из Gmail в Outlook в Django 2 - PullRequest
0 голосов
/ 31 октября 2018

Я пытался создать систему управления встречами, в которой пользователь может отправить приглашение на почту admin . Я могу отправить одно письмо от пользователя к администратору, но как я могу отправить электронное письмо с Gmail на outlook

Вот мой settings.py код

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'appoint@gmail.com'
EMAIL_HOST_PASSWORD = '******'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

вот мой views.py

def sendRequest(request):
    email = EmailMessage('Subject', 'Body', to=['appoint@dekkotops.com'])
    email.send()
    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))

Теперь мне нужно отправить электронное письмо о событии, а не одно письмо от моей учетной записи Gmail системы

Я делаю Google по этому поводу, но не могу найти правильного решения шаг за шагом

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Сначала нужно создать .ics файл

BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:Microsoft Exchange Server 2010
VERSION:2.0
BEGIN:VTIMEZONE
TZID:Bangladesh Standard Time
BEGIN:STANDARD
DTSTART:16010101T000000
TZOFFSETFROM:+0600
TZOFFSETTO:+0600
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010101T000000
TZOFFSETFROM:+0600
TZOFFSETTO:+0600
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ORGANIZER;CN=dekkoappoint:MAILTO:dekkoappoint@dekkotops.com
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS- 
ACTION;RSVP=TRUE;CN=sendusermail@gmail.com:MAILTO:sendusermail@gmail.com
DESCRIPTION;LANGUAGE=en-US:Hi This is a test mail\n
UID:040000008200E00074C5B7101A82E008000000009CCD2D80E57BD401000000000000000
 010000000F02E168DB7BF3A4BAC1FAE1547D716BE
SUMMARY;LANGUAGE=en-US:Test Event
DTSTART;TZID=Bangladesh Standard Time:20181115T130000
DTEND;TZID=Bangladesh Standard Time:20181115T140000
CLASS:PUBLIC
PRIORITY:5
DTSTAMP:20181114T064433Z
TRANSP:OPAQUE
STATUS:CONFIRMED
SEQUENCE:0
LOCATION;LANGUAGE=en-US:Dhaka University Area (Dhaka University Area Dhaka\
 , Bangladesh)
X-MICROSOFT-CDO-APPT-SEQUENCE:0
X-MICROSOFT-CDO-OWNERAPPTID:2116776604
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-CDO-ALLDAYEVENT:FALSE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INSTTYPE:0
X-MICROSOFT-DONOTFORWARDMEETING:FALSE
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MICROSOFT-LOCATIONDISPLAYNAME:Dhaka University Area
X-MICROSOFT-LOCATIONSOURCE:Device
X-MICROSOFT-LATITUDE:23.7303
X-MICROSOFT-LONGITUDE:90.3933
X-MICROSOFT-LOCATIONCITY:Dhaka University Area
X-MICROSOFT-LOCATIONSTATE:Dhaka
X-MICROSOFT-LOCATIONCOUNTRY:Bangladesh
X-MICROSOFT-LOCATIONS:[{"DisplayName":"Dhaka University Area"\,"LocationAnn
 otation":""\,"LocationSource":3\,"LocationUri":""\,"Latitude":23.7303\,"Lo
 ngitude":90.3933\,"LocationStreet":""\,"LocationCity":"Dhaka University Ar
 ea"\,"LocationState":"Dhaka"\,"LocationCountry":"Bangladesh"\,"LocationPos
 talCode":""\,"LocationFullAddress":""}]
BEGIN:VALARM
DESCRIPTION:REMINDER
TRIGGER;RELATED=START:-PT15M
ACTION:DISPLAY
END:VALARM
END:VEVENT
END:VCALENDAR

После этого в view.py

from django.core.mail import EmailMessage

def sendRequest(request):
    email = EmailMessage('Subject', 'email body', 'sendfrom@gmail.com', ['getfrom@gmail.com'])
    email.attach_file('assets/invite.ics', 'text/calendar')
    email.send()
    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
0 голосов
/ 31 октября 2018

Что вы можете сделать, это создать файл .ics с информацией о приглашении (вы можете использовать шаблон Django для записи файла .ics или просто сгенерировать его с использованием простого кода Python).

Вы можете посмотреть спецификацию файла .ics и узнать о ней здесь:

https://en.wikipedia.org/wiki/ICalendar

Тогда вы можете просто прикрепить этот .ics файл к вашему почтовому сообщению:

email = EmailMessage('Meeting invitation', 'Email body...', 'noreply@example.com', ['recipient1@example.com', ])
email.attach('invite.ics', invite_file_content, 'text/calendar')
email.send()

В качестве альтернативы вы можете использовать это стороннее приложение django-cal

Может быть, этот пост также может дать вам некоторое представление о проблеме: Как получить приглашение на собрание для правильной интеграции с Gmail / Службами Google?

...