Package: django-sendgrid-v5
django-sendgrid-v5This package implements an email backend for Django that relies on sendgrid's REST API for message delivery.It is under active development, and pull requests are more than welcome!To use the backend, simply install the package (using pip), set theEMAIL_BACKENDsetting in Django, and add aSENDGRID_API_KEYkey (set to the appropriate value) to your Django settings.How to Installpip install django-sendgrid-v5In your project's settings.py script:SetEMAIL_BACKEND = "sendgrid_backend.SendgridBackend"Set the SENDGRID_API_KEY in settings.py to your api key that was provided to you by sendgrid.SENDGRID_API_KEY = os.environ["SENDGRID_API_KEY"]Other settingsTo toggle sandbox mode (when django is running in DEBUG mode), setSENDGRID_SANDBOX_MODE_IN_DEBUG = True/False.To err on the side of caution, this defaults to True, so emails sent in DEBUG mode will not be delivered, unless this setting is explicitly set to False.SENDGRID_ECHO_TO_STDOUTwill echo to stdout or any other file-like
object that is passed to the backend via thestreamkwarg.SENDGRID_TRACK_EMAIL_OPENS- defaults to true and tracks email open events via the Sendgrid service. These events are logged in the Statistics UI, Email Activity interface, and are reported by the Event Webhook.SENDGRID_TRACK_CLICKS_HTML- defaults to true and, if enabled in your Sendgrid account, will tracks click events on links found in the HTML message sent.SENDGRID_TRACK_CLICKS_PLAIN- defaults to true and, if enabled in your Sendgrid account, will tracks click events on links found in the plain text message sent.UsageSimplefromdjango.core.mailimportsend_mailsend_mail('Subject here','Here is the message.','from@example.com',['to@example.com'],fail_silently=False,)Dynamic Template with JSON DataFirst, create adynamic templateand copy the ID.fromdjango.core.mailimportEmailMessagemsg=EmailMessage(from_email='to@example.com',to=['to@example.com'],)msg.template_id="your-dynamic-template-id"msg.dynamic_template_data={"title":foo}msg.send(fail_silently=False)The kitchen sink EmailMessage (all of the supported sendgrid-specific properties)fromdjango.core.mailimportEmailMessagemsg=EmailMessage(from_email='to@example.com',to=['to@example.com'],cc=['cc@example.com'],bcc=['bcc@example.com'],)# Personalization custom args# https://sendgrid.com/docs/for-developers/sending-email/personalizations/msg.custom_args={'arg1':'value1','arg2':'value2'}# Reply to email address (sendgrid only supports 1 reply-to email address)msg.reply_to='reply-to@example.com'# Send at (accepts an integer per the sendgrid docs)# https://docs.sendgrid.com/for-developers/sending-email/scheduling-parameters#send-atmsg.send_at=1600188812# Transactional templates# https://sendgrid.com/docs/ui/sending-email/how-to-send-an-email-with-dynamic-transactional-templates/msg.template_id="your-dynamic-template-id"msg.dynamic_template_data={# Sendgrid v6+ only"title":foo}msg.substitutions={"title":bar}# Unsubscribe groups# https://sendgrid.com/docs/ui/sending-email/unsubscribe-groups/msg.asm={'group_id':123,'groups_to_display':['group1','group2']}# Categories# https://sendgrid.com/docs/glossary/categories/msg.categories=['category1','category2']# IP Pools# https://sendgrid.com/docs/ui/account-and-settings/ip-pools/msg.ip_pool_name='my-ip-pool'msg.send(fail_silently=False)FAQHow to change a Sender's Name ?from_email="John Smith <john.smith@example.org>"You can just include the name in the from_email field of theEmailMessageclassmsg = EmailMessage(
  from_email='Sender Name <from@example.com>',
  to=['to@example.com'],
)How to make mails to multiple users private (hide all the email addresses to which the mail is sent) to each person (personalization) ?Setting themake_privateattribute toTruewill help us achieve itmsg = EmailMessage(
  from_email='Sender Name <from@example.com>',
  to=['to@example.com','abc@example.com','xyz@example.com'],
)
msg.make_private = TrueExamplesMarcelo Canina(@marcanuy)wrote a great article demonstrating how to integratedjango-sendgrid-v5into your Django application on his site:https://simpleit.rocks/python/django/adding-email-to-django-the-easiest-way/RX-36(@DevWoody856)demonstrates how to usedjango-sendgrid-v5to make a contact form for your web application:https://rx-36.life/create-a-contact-form-using-sendgrid-with-django/Stargazers over time