EMAIL_HOST ? smtp 服務(wù)器
EMAIL_HOST_USER ? 登錄憑證SMTP服務(wù)器
EMAIL_HOST_PASSWORD ? SMTP服務(wù)器密碼憑證
EMAIL_PORT ? smtp服務(wù)器端口
EMAIL_USE_TLS 或 _SSL ? 如果設(shè)置為True則為安全連接。
from django.core.mail import send_mail
from django.http import HttpResponse
def sendSimpleEmail(request,emailto):
res = send_mail("hello paul", "comment tu vas?", "paul@yiibai.com", [emailto])
return HttpResponse('%s'%res)
這里是 send_mail 參數(shù)的細(xì)節(jié) ?
subject ? E-mail 標(biāo)題
message ? E-mail 主題內(nèi)容
from_email ? E-mail 發(fā)送方
recipient_list ? 接收者的電子郵件地址列表
fail_silently ? 布爾,如果是false,send_mail將在出現(xiàn)錯(cuò)誤時(shí)引發(fā)異常
auth_user ? 用戶登錄,如果不在 settings.py 中設(shè)置
auth_password ? 用戶密碼,如果不在 settings.py 設(shè)置
connection ? E-mail 后端
html_message ? (Django1.7中新增功能),如果存在的話,該郵件將為 multipart/alternative。
from django.conf.urls import patterns, url
urlpatterns = paterns('myapp.views', url(r'^simpleemail/(?P<emailto>
[\w.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})/',
'sendSimpleEmail' , name = 'sendSimpleEmail'),)
所以,在訪問(wèn) /myapp/simpleemail/polo@gmail.com/ 的時(shí)候,會(huì)進(jìn)入以下頁(yè)面 ?
方法返回的消息成功傳遞的數(shù)量。 這與 send_mail 一樣但需要一個(gè)額外的參數(shù); datatuple,我們 sendMassEmail 視圖為?
from django.core.mail import send_mass_mail
from django.http import HttpResponse
def sendMassEmail(request,emailto):
msg1 = ('subject 1', 'message 1', 'polo@polo.com', [emailto1])
msg2 = ('subject 2', 'message 2', 'polo@polo.com', [emailto2])
res = send_mass_mail((msg1, msg2), fail_silently = False)
return HttpResponse('%s'%res)
讓我們創(chuàng)建訪問(wèn)我們的視圖網(wǎng)址 ?
from django.conf.urls import patterns, url
urlpatterns = paterns('myapp.views', url(r'^massEmail/(?P<emailto1>
[\w.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})/(?P<emailto2>
[\w.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})', 'sendMassEmail' , name = 'sendMassEmail'),)
當(dāng)我們?cè)L問(wèn) /myapp/massemail/polo@gmail.com/sorex@gmail.com/, 我們得到 ?
send_mass_mail 參數(shù)詳細(xì)如下 ?
datatuples ? 元組,每個(gè)元素都是像 (subject, message, from_email, recipient_list)
fail_silently ? 布爾,如果為false,send_mail將在出現(xiàn)錯(cuò)誤時(shí)引發(fā)異常
auth_user ? 用戶登錄,如果不在 settings.py 設(shè)置
auth_password ? 用戶密碼,如果不在 settings.py 中設(shè)置
connection ? E-mail 后端
注 - 在這個(gè)例子中,我們使用Python的smtpd debuggingserver,可以使用下面命令啟動(dòng) ?
$python -m smtpd -n -c DebuggingServer localhost:1025
這些方法發(fā)送電子郵件給網(wǎng)站管理員作為settings.py文件的ADMINS選項(xiàng)定義,網(wǎng)站管理人員在settings.py文件MANAGERS項(xiàng)中定義。假設(shè)我們的ADMINS和MANAGERS的看起來(lái)如下-
ADMINS = (('polo', 'polo@polo.com'),)
MANAGERS = (('popoli', 'popoli@polo.com'),)
from django.core.mail import mail_admins
from django.http import HttpResponse
def sendAdminsEmail(request):
res = mail_admins('my subject', 'site is going down.')
return HttpResponse('%s'%res)
from django.core.mail import mail_managers
from django.http import HttpResponse
def sendManagersEmail(request):
res = mail_managers('my subject 2', 'Change date on the site.')
return HttpResponse('%s'%res)
參數(shù)詳細(xì)信息 ?
Subject ? E-mail 標(biāo)題.
message ? E-mail 主題.
fail_silently ? 布爾,如果為false,send_mail將在出現(xiàn)錯(cuò)誤時(shí)引發(fā)異常
connection ? E-mail后端.
html_message ? (Django1.7中新增功能),如果存在的話,該郵件將為 multipart/alternative。
from django.core.mail import send_mail
from django.http import HttpResponse
res = send_mail("hello paul", "comment tu vas?", "paul@polo.com",
["polo@gmail.com"], html_message=")
但對(duì)于 Django<1.7 發(fā)送HTML郵件是通過(guò) django.core.mail.mailMessage 類來(lái)完成,然后調(diào)用“send”對(duì)象?
from django.core.mail import EmailMessage
from django.http import HttpResponse
def sendHTMLEmail(request , emailto):
html_content = "<strong>Comment tu vas?</strong>"
email = EmailMessage("my subject", html_content, "paul@polo.com", [emailto])
email.content_subtype = "html"
res = email.send()
return HttpResponse('%s'%res)
參數(shù)的詳細(xì)信息的電子郵件消息創(chuàng)建類 ?
Subject ? E-mail 標(biāo)題.
message ? E-mail 在HTML主體.
from_email ? E-mail 發(fā)送方.
to ? 接收者的電子郵件地址列表。
bcc ? “密件抄送”收件人的電子郵件地址列表。
connection ? E-mail 后端.
讓我們創(chuàng)建訪問(wèn)視圖網(wǎng)址 ?
from django.conf.urls import patterns, url
urlpatterns = paterns('myapp.views', url(r'^htmlemail/(?P<emailto>
[\w.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})/',
'sendHTMLEmail' , name = 'sendHTMLEmail'),)
當(dāng)我們?cè)L問(wèn) /myapp/htmlemail/polo@gmail.com, 會(huì)得到以下內(nèi)容 ?
一個(gè)視圖用于發(fā)送一封電子郵件,附件如下 ?
from django.core.mail import EmailMessage
from django.http import HttpResponse
def sendEmailWithAttach(request, emailto):
html_content = "Comment tu vas?"
email = EmailMessage("my subject", html_content, "paul@polo.com", emailto])
email.content_subtype = "html"
fd = open('manage.py', 'r')
email.attach('manage.py', fd.read(), 'text/plain')
res = email.send()
return HttpResponse('%s'%res)
在附件中的詳細(xì)參數(shù) ?
filename ? 附加的文件的名稱
content ? 該文件的內(nèi)容,以附加。
mimetype ? 附件的內(nèi)容MIME類型。