Mailjet
This commit is contained in:
@@ -6,7 +6,6 @@ from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.contrib.auth.decorators import permission_required, login_required
|
||||
from django.conf import settings
|
||||
from django.core.mail import send_mail
|
||||
|
||||
import logging
|
||||
import requests
|
||||
|
||||
+3
-3
@@ -11,7 +11,7 @@ import logging
|
||||
from smtplib import SMTPAuthenticationError
|
||||
|
||||
from members.models import Member, Request
|
||||
from members.views.utils import send_mail_wrapper
|
||||
from webapp.utils import send_email
|
||||
|
||||
|
||||
@receiver(post_save, sender=Request)
|
||||
@@ -24,7 +24,7 @@ def email_on_request(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
subject = 'Test1'
|
||||
message = 'Please validate your email address\r\n'
|
||||
send_mail_wrapper(subject, message, instance.email)
|
||||
send_email(instance.email, subject, message)
|
||||
except SMTPAuthenticationError:
|
||||
logging.error('Failed to send email to accepted request!')
|
||||
|
||||
@@ -39,6 +39,6 @@ def email_on_accept(sender, instance, created, **kwargs):
|
||||
if created:
|
||||
subject = 'Test2'
|
||||
message = 'Jäsenhakemuksesi on hyväksytty!!!\r\n'
|
||||
send_mail_wrapper(subject, message, instance.email)
|
||||
send_email(instance.email, subject, message)
|
||||
except SMTPAuthenticationError:
|
||||
logging.error('Failed to send email to accepted member!')
|
||||
|
||||
@@ -3,7 +3,6 @@ from django.contrib.auth.decorators import permission_required, login_required
|
||||
from django.views.decorators.http import require_http_methods
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.core.mail import send_mail
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.forms.models import model_to_dict
|
||||
|
||||
@@ -4,7 +4,6 @@ from django.utils.decorators import method_decorator
|
||||
from django.views.decorators.http import require_http_methods
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
from django.http import HttpResponse, HttpResponseRedirect, JsonResponse, HttpResponseForbidden
|
||||
from django.core.mail import send_mail
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.forms.models import model_to_dict
|
||||
|
||||
@@ -3,7 +3,6 @@ from django.contrib.auth.decorators import permission_required, login_required
|
||||
from django.views.decorators.http import require_http_methods
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.core.mail import send_mail
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.forms.models import model_to_dict
|
||||
|
||||
+1
-10
@@ -3,7 +3,7 @@ from django.contrib.auth.decorators import permission_required, login_required
|
||||
from django.views.decorators.http import require_http_methods
|
||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseBadRequest
|
||||
from django.core.mail import send_mail
|
||||
from webapp.utils import send_email
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.forms.models import model_to_dict
|
||||
@@ -145,15 +145,6 @@ def import_csv(request, *args, **kwargs):
|
||||
return render(request, 'member_add_many_confirm.html', context)
|
||||
|
||||
|
||||
def send_mail_wrapper(subject, message, email_to):
|
||||
"""Send mail to default email."""
|
||||
send_mail(subject,
|
||||
message,
|
||||
settings.DEFAULT_EMAIL_FROM,
|
||||
[email_to],
|
||||
fail_silently=False)
|
||||
|
||||
|
||||
def make_excel_response(Resource):
|
||||
res = Resource()
|
||||
dataset = res.export()
|
||||
|
||||
+2
-1
@@ -29,7 +29,7 @@ django-auditlog==0.4.5
|
||||
phonenumbers==8.11.4
|
||||
django-phonenumber-field[phonenumbers]==4.0.0
|
||||
django-autocomplete-light==3.4.1
|
||||
six==1.11.0
|
||||
six==1.12.0
|
||||
django-suit==0.2.26
|
||||
telepot==12.3
|
||||
pyexcel==0.5.14
|
||||
@@ -40,3 +40,4 @@ django-app-namespace-template-loader==0.4.1
|
||||
django-filter==2.0.0
|
||||
whitenoise==4.1.4
|
||||
jsonschema==3.2.0
|
||||
mailjet-rest==1.3.3
|
||||
|
||||
+4
-3
@@ -30,9 +30,10 @@ GOOGLE_RECAPTCHA_SITE_KEY = os.getenv("GOOGLE_RECAPTCHA_SITE_KEY", "YOUR-PUBLIC-
|
||||
GOOGLE_RECAPTCHA_SECRET_KEY = os.getenv("GOOGLE_RECAPTCHA_SECRET_KEY", "YOUR-PRIVATE-KEY")
|
||||
|
||||
# Email settings (more settings in base.py)
|
||||
EMAIL_HOST_USER = os.getenv('EMAIL_HOST', 'sikviestinta@gmail.com')
|
||||
EMAIL_HOST_PASSWORD = os.getenv('EMAIL_PASSWD', '<gmail_passu>')
|
||||
DEFAULT_EMAIL_FROM = 'SIK Viestintä <sikviestinta@gmail.com>'
|
||||
EMAIL_API_KEY = os.getenv('EMAIL_API_KEY', '')
|
||||
EMAIL_API_SECRET = os.getenv('EMAIL_API_SECRET', '')
|
||||
DEFAULT_EMAIL_FROM = 'SIK'
|
||||
DEFAULT_EMAIL_FROM_ADDR = 'noreply@sahkoinsinoorikilta.fi'
|
||||
ENABLE_AUTOMATIC_EMAILS = True
|
||||
|
||||
# Token for Telegram bot
|
||||
|
||||
@@ -29,6 +29,20 @@ services:
|
||||
environment:
|
||||
- HOST=api.dev.sik.party
|
||||
- DEBUG=True
|
||||
- EMAIL_API_KEY_FILE=/run/secrets/DJANGO_EMAIL_API_KEY
|
||||
- EMAIL_API_SECRET_FILE=/run/secrets/DJANGO_EMAIL_API_SECRET
|
||||
- DB_HOST=db
|
||||
- DB_PORT=5432
|
||||
|
||||
secrets:
|
||||
- DJANGO_EMAIL_API_KEY
|
||||
- DJANGO_EMAIL_API_SECRET
|
||||
|
||||
secrets:
|
||||
DJANGO_EMAIL_API_KEY:
|
||||
external: true
|
||||
DJANGO_EMAIL_API_SECRET:
|
||||
external: true
|
||||
|
||||
volumes:
|
||||
dbdata:
|
||||
|
||||
+31
-11
@@ -1,13 +1,15 @@
|
||||
"""Webapp utils."""
|
||||
|
||||
from django.utils import timezone
|
||||
from django.core.mail import send_mail
|
||||
# from django.core.mail import send_mail
|
||||
import os
|
||||
from mailjet_rest import Client
|
||||
|
||||
from datetime import timedelta
|
||||
import logging
|
||||
from django.conf import settings
|
||||
from django.template.loader import render_to_string
|
||||
from sikweb.settings import URL
|
||||
from sikweb.settings import URL, EMAIL_API_KEY, EMAIL_API_SECRET, DEFAULT_EMAIL_FROM, DEFAULT_EMAIL_FROM_ADDR
|
||||
|
||||
|
||||
def month_from_now():
|
||||
@@ -17,18 +19,36 @@ def month_from_now():
|
||||
|
||||
def send_email(to, subject, body, fail_silently=False):
|
||||
try:
|
||||
success = send_mail(
|
||||
subject,
|
||||
body,
|
||||
settings.DEFAULT_EMAIL_FROM,
|
||||
[to],
|
||||
fail_silently=fail_silently,
|
||||
)
|
||||
if success == 0:
|
||||
raise Exception('Failed to send email!')
|
||||
mailjet = Client(auth=(EMAIL_API_KEY, EMAIL_API_SECRET), version='v3.1')
|
||||
|
||||
data = {
|
||||
'Messages': [
|
||||
{
|
||||
"From": {
|
||||
"Email": DEFAULT_EMAIL_FROM_ADDR,
|
||||
"Name": DEFAULT_EMAIL_FROM
|
||||
},
|
||||
"To": [
|
||||
{
|
||||
"Email": to,
|
||||
"Name": "You"
|
||||
}
|
||||
],
|
||||
"Subject": subject,
|
||||
# "TextPart": "Greetings from Mailjet!",
|
||||
"HTMLPart": body
|
||||
}
|
||||
]
|
||||
}
|
||||
success = mailjet.send.create(data=data)
|
||||
|
||||
if success.status_code != 201:
|
||||
raise Exception(f'Failed to send email: {success.json()}')
|
||||
|
||||
except Exception as ex:
|
||||
logging.exception('Failed to send email.')
|
||||
logging.debug(EMAIL_API_KEY)
|
||||
logging.debug(EMAIL_API_SECRET)
|
||||
|
||||
|
||||
def send_signup_email(to, subject, id, uuid):
|
||||
|
||||
Reference in New Issue
Block a user