用django发送邮件

这里用的163邮箱测试,其他邮箱可能会有不同问题,代码粘贴注意调整格式.

1,建立django项目

2,在项目setting.py文件末中加上以下配置

# smtp服务的邮箱服务器

EMAIL_HOST = 'smtp.163.com'

# smtp服务固定的端口是25

EMAIL_PORT = 25

#发送邮件的邮箱

EMAIL_HOST_USER = 'xxxxxx@163.com'

#在邮箱中设置的客户端授权密码,不会自行百度

EMAIL_HOST_PASSWORD = 'xxxxxx'

#收件人看到的发件人 <此处要和发送邮件的邮箱相同>

EMAIL_FROM = 'python<xxxxxx@163.com>'

3,在app中配置路由,视图函数,模板下建立渲染模板,发送邮件

#1,先在项目的urls.py 文件中包含上APP的路由

from django.conf.urls import url, include

from django.contrib import admin

urlpatterns = [

url(r'^admin/', admin.site.urls),

url(r'^app/',include('app.urls',namespace='app'))

]

#2,在APP中建立的urls.py文件,配置邮件发送路由

from django.conf.urls import url, include

from django.contrib import admin

from app import views

urlpatterns = [

#邮件发送

url(r'sendone/$',views.sendOne,name='one'),

url(r'sendmany/$',views.sendMany,name='many'),

url(r'sendhtml/$',views.sendHtml,name='mailhtml')

]

#3,在APP的views.py建立上面三个路由的视图函数

from django.core.mail import send_mail

from django.shortcuts import render

from django.http import HttpResponse

# Create your views here.

from youjianfasong import settings

def sendOne(request):

#send_mail的四个参数分别是:邮件标题,邮件内容,发送者邮箱,发送对象列表.

send_mail('发送单封邮件','邮件内容,你看到就是发送成功',settings.EMAIL_HOST_USER,['ccccc@qq.com','scqhh@yeah.net'])

return HttpResponse('发送单封邮件')

#4,执行一下文件python manage.py runserver 8024,打开网页http://127.0.0.1:8024/app/sendone/,看到返回

发送单封邮件,说明执行没问题,邮件发送成功了,如果没有收到有可能是被拦截在垃圾箱里面.

#5发送多个对象,多种内容用send_mass_mail,和上面单发一样的步骤,代码:

def sendMany(request):

one = ('标题','内容',settings.EMAIL_HOST_USER,['1778888888883@163.com'])

two = ('葫芦岛','死5人伤10人',settings.EMAIL_HOST_USER,['lianpoiuji314@163.com'])

send_mass_mail((one,two))

return HttpResponse("群发")

#6发送html链接邮件用EmailMultiAlternatives,需要在模板templates下先建立一个html文件,下面发送一样的步骤:

#html文件

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>激活</title>

</head>

<body>

欢迎{{ username }}回来,请点击右侧的链接激活 <a href="http://127.0.0.1/app/sendone/{{ username }}/">激活</a>

</body>

</html>

#发送邮件代码

def sendHtml(request):

#只需要修改收件人邮箱cq85895dfh@yeah.net,active.html,'username': "小路迢迢"

subject, from_email, to = 'html', settings.EMAIL_FROM, 'scq85895dfh@yeah.net'

from django.template import loader

html_content = loader.get_template('active.html').render({'username': "小路迢迢"})

msg = EmailMultiAlternatives(subject, from_email=from_email, to=[to])

msg.attach_alternative(html_content, "text/html")

msg.send()

return HttpResponse("html邮件")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值