之前介紹過 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'
在程式碼方面,
必須先建立與 Mail Server 的連線:
conn = get_connection() conn.username = tmp_server.m_user # usernameconn.password = tmp_server.m_password # passwordconn.host = tmp_server.m_server # mail serverconn.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 = TrueEMAIL_HOST = 'mail.server'EMAIL_PORT = 587EMAIL_HOST_USER = 'admin@test'EMAIL_HOST_PASSWORD = 'test'DEFAULT_FROM_EMAIL = 'From'
這樣就可省略上述的建立連線,
這裡是不及格研究室,
今天的主題是:
沒有留言:
張貼留言