首页 > 解决方案 > Django如何发送带有用户链接的电子邮件?

问题描述

嗨,我是 Django 的新手,刚刚从文档中学习。我刚刚使用 django 发送电子邮件https://docs.djangoproject.com/en/2.1/topics/email/。我想在加入消息中发送一封电子邮件想发送一个带有司机 ID 的 URL 用于预订汽车。我如何发送带有他 ID 的网址。例如,我的员工网站中有 4 个用户。我们公司员工点击链接向已注册的用户发送电子邮件。单击发送电子邮件后,我如何在我的 url 中获取驱动程序 id 并在加入消息中向他发送一个链接,其中他的 id 在 url 中。

视图.py

def rentacar_carapp_approve(request):
    if request.POST:
        try:
            args['driver'] = driver = Driver.objects.get(id=request.POST.get('driver_id'))
            subject = "Please Register Your Car"
            from_email = settings.EMAIL_HOST_USER
            to_email = driver_email
            if to_email is not None:
                join_message = """Please hit the link and book a car "url with his id " """
                send_mail(subject=subject, from_email=from_email, recipient_list=[to_email], message=join_message,
                          fail_silently=False)
                print("email sent")
        except Driver.DoesNotExist:
            print("Driver doesn't exists")
        return HttpResponseRedirect('/mega-admin/rentacar/carapp-manager/')

网址.py

url(r'^drivers/(?P<driver_id>\d+)/$',rent_views.book,name='book'),

标签: djangodjango-viewsdjango-email

解决方案


你可以这样试试:

if request.is_secure():
   protocol = 'https://'
else:
   protocol = 'http://'

host = request.get_host()

url = protocol + host + reverse('url_name', kwargs={user_id: user_id})
  • 如果 url 模式没有争论,kwargs 可能为 null。

然后在 send email() 中将 url 与您的消息正文连接起来。


推荐阅读