透過 Django 寄送 EMAIL範例教學
之前介紹過 Django 匯入 Excel 檔案進行處理,
今天要來介紹:
透過 Django 寄送 EMAIL範例教學
在現代社會的書信往來,
大多已被 EMAIL 取代,
Django 也提供的信件處理相關的服務,
與 Python 相同,
必須 import 需要的模組:
from django.core.mail import EmailMultiAlternatives, get_connection
同時在 settings.py 要加上:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_USE_TLS = True EMAIL_PORT = 587
在程式碼方面,
必須先建立與 Mail Server 的連線:
conn = get_connection() conn.username = tmp_server.m_user # username conn.password = tmp_server.m_password # password conn.host = tmp_server.m_server # mail server conn.open()
接著設定 Email 的信件內容:
test_from = Emails.objects.get(e_status='default').e_from test_title = Emails.objects.get(e_status='default').e_title context = {'insight_url': '........', 'course_id': '........' }
email_template_name = 'insight_dash.html't = loader.get_template(email_template_name) mail_list = target_mails # 收件者的郵件 List subject, from_email, to = test_title, test_from, mail_list html_content = t.render(dict(context)) # str(test_content) msg = EmailMultiAlternatives(subject, html_content, from_email, to) msg.attach_alternative(html_content, "text/html") conn.send_messages([msg, ]) # 寄送郵件
當然最後要關閉與 Server 間的連線
conn.close()
這封信件是以 HTML 方式寄出,
如果要以純文字寄送的話:
from django.core.mail import send_mail
send_mail('Subject here', 'Here is the message.', 'from@example.com', ['to@example.com'], fail_silently=False)
直接以 send_mail 方式寄出即可,
除此以外,
也可以將 Mail Server 的相關設定存在 settings.py 中:
# EMAIL setting
EMAIL_USE_TLS = True EMAIL_HOST = 'mail.server' EMAIL_PORT = 587 EMAIL_HOST_USER = 'admin@test' EMAIL_HOST_PASSWORD = 'test' DEFAULT_FROM_EMAIL = 'From '
這樣就可省略上述的建立連線,
如果要傳送密件副本的話,
要多傳一個參數
bcc = mail_list
這裡是不及格研究室,
今天的主題是:
透過 Django 寄送 EMAIL範例教學
================================
分享與讚美,是我們繼續打拼的原動力.
若文章對您有幫助,望請不吝按讚或分享.
或者對影片有興趣可以訂閱頻道接收通知
================================
YouTube 頻道
FB 粉絲專頁
================================