English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Django提供了一个现成的,易于使用发送电子邮件的轻型引擎。类似Python,你需要导入smtplib。在Django中只需要导入django.core.mail。要发送电子邮件,编辑项目settings.py文件,并设置下列选项−
让我们创建一个“sendSimpleEmail”视图发送一个简单的电子邮件。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 from django.core.mail import send_mail from django.http import HttpResponse def sendSimpleEmail(request, emailto): res = send_mail("hello paul", "comment tu vas?", "xxx@w")3codebox.com", [emailto]) return HttpResponse('%s'%res)
codebox.com", [emailto])
send_mail 매개변수의 세부 사항은 다음과 같습니다 − − E-subject message − E-이메일 제목 from_email − E-이메일 주제 내용 이메일 발신자 recipient_list fail_silently − 수신자 이메일 주소 목록 auth_user − 부울, false이면 send_mail이 오류가 발생할 때 예외를 발생시킵니다 auth_password − 사용자 로그인, settings.py에 설정되어 있지 않으면 connection − E-mail 백엔드 html_message − (Django1.7중에서 새로 추가된 기능이 있으면, 이 이메일은 multipart로 처리됩니다./대체 가능.− 사용자 비밀번호, settings.py에 설정되어 있지 않으면 -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 from django.conf.urls import patterns, url 우리의 뷰 URL을 방문하여/(?P<emailto> [\w.%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4})/', urlpatterns = patterns('myapp.views', url(r'^simpleemail
'sendSimpleEmail', name='sendSimpleEmail'),) /myapp/따라서, 방문 시/ [email protected]/ simpleemail
메서드는 send_mail과 마찬가지로 메시지를 성공적으로 전송한 횟수를 반환합니다. 추가 매개변수가 필요합니다; datatuple, 우리의 sendMassEmail 뷰는 다음과 같습니다 −
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 from django.core.mail import send_mass_mail from django.http import HttpResponse def sendMassEmail(request, emailto): msg1 = ('subject 1', 'message 1', '[email protected]', [emailto1]) msg2 = ('subject 2', 'message 2', '[email protected]', [emailto2]) res = send_mass_mail((msg1, msg2), fail_silently=False) return HttpResponse('%s'%res)
우리의 뷰 URL을 방문하여 만들어주세요 −
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 from django.conf.urls import patterns, url urlpatterns = patterns('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'),)
우리가 방문할 때 /myapp/massemail/[email protected]/[email protected]/, 우리는 다음을 얻습니다 −
send_mass_mail 매개변수의 세부 사항은 다음과 같습니다 −
datatuples − 튜플, 각 요소는 다음과 같은 형식입니다 (주제, 메시지, 발신 이메일, 수신자 목록) fail_silently − 부울, false이면 send_mail은 오류가 발생할 때 예외를 발생시킵니다 auth_user − 사용자 로그인, settings.py에 설정되지 않았을 경우 auth_password − 사용자 비밀번호, settings.py에 설정되지 않았을 경우 connection − E-mail 백엔드위 이미지에서 볼 수 있듯이, 두 가지 메시지가 성공적으로 전송되었습니다.
주의 - 이 예제에서는 Python의 smtpd debuggingserver를 사용하며, 다음 명령어로 시작할 수 있습니다. −
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 $python -m smtpd -n -c DebuggingServer localhost:1025
이는 모든 전송된 이메일이 stdout에 출력되고 localhost에서 실행되는 가상 서버에 의해 처리된다는 것을 의미합니다:1025.
mail_admins와 mail_managers 메서드를 사용하여 관리자와 관리자에게 이메일을 보냅니다.
이 메서드는 settings.py 파일의 ADMINS 옵션으로 정의된 웹 사이트 관리자에게 이메일을 보냅니다. settings.py 파일의 MANAGERS 항목에 정의된 웹 사이트 관리자가 looks like 다음과 같습니다.-
ADMINS = (('polo', '[email protected]'),)
MANAGERS = (('popoli', '[email protected]'),)
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 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)
위 코드는 ADMINS 부분에서 정의된 각 관리자에게 이메일을 보냅니다.
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 from django.core.mail import mail_managers from django.http import HttpResponse def sendManagersEmail(request): res = mail_managers('my subject 2', '사이트 날짜 변경') return HttpResponse('%s'%res)
위 코드는 MANAGERS 부분에서 정의된 각 관리자에게 이메일을 보냅니다.
파라미터 상세 정보 −
Subject − E-mail 제목. message − E-mail 주제. fail_silently − 부울, false이면 send_mail은 오류가 발생할 때 예외를 발생시킵니다 connection − E-mail 백엔드. html_message − (Django1.7중에서 새로 추가된 기능이 있으면, 이 이메일은 multipart로 처리됩니다./대체 가능.Django>=1.7HTML 메시지와 같이 간단하게 보내bilir -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 from django.core.mail import send_mail from django.http import HttpResponse res = send_mail("hello paul", "comment tu vas?", "[email protected]", ["[email protected]"], html_message=")
이는 multipart/대체 이메일.
하지만 Django<1.7 HTML 이메일은 django.core.mail.mailMessage 클래스를 사용하여 완료되며, 그 다음 "send" 객체를 호출합니다 −
HTML 이메일을 보내는 "sendHTMLEmail" 뷰를 생성하겠습니다.
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 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, "[email protected]", [emailto]) email.content_subtype = "html" res = email.send() return HttpResponse('%s'%res)
상세 정보의 파라미터를 포함한 이메일 메시지 생성 클래스 −
Subject − E-mail 제목. message − E-mail HTML 본문. from_email − E-mail 발신자. to − 수신자 이메일 주소 목록. bcc − "밀송" 수신자 이메일 주소 목록. connection − E-mail 백엔드.접근 가능한 뷰 URL을 생성하겠습니다 −
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 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'),)
우리가 방문할 때 /myapp/htmlemail/[email protected], 다음과 같은 내용을 받게 됩니다 −
이는 해당 EmailMessage 객체의 "attach" 메서드를 사용하여 수행됩니다.
다음과 같은 첨부 파일을 포함한 이메일을 보내는 뷰가 있습니다 −
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ko.oldtoolbag.com # Date : 2020-08-08 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, "[email protected]", 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)
첨부 파일 내의 상세 매개변수 −
filename − 첨부 파일의 이름 content − 첨부 파일의 내용. mimetype − 첨부 파일의 MIME 타입.