0

我正在使用 Django 视图来呈现一个 HTML(1) 文件,该文件向另一个 Django URL 发出 AJAX 请求,并且响应被转换为另一个 HTML(2)。我想通过电子邮件发送 HTML(2) 的内容,有没有办法做到这一点?

ps:我还有定义 HTML(2) 布局的 css 文件。我想确保收件人可以查看 css 格式的 HTML。这是我创建 HTML(2) 的代码。

 success: function(response) {
            var output  = "<ul>";
            //output += "<table border=\"1\">";
                $.each(response, function(entryIndex, entry){
                $.each(entry, function(key,value ){
                if (key != '_id'){
                if (key == 'week'){
                output += "<table border=\"1\">";
                output += "<tr>";
                output += "<th colspan=2><br>"+key+value+"</th>";
                output += "</tr>";
                //output += "</ul>";
                 }
                else{
                if ( key == 'report'){
                $.each(value, function(key1,value1){
                output += "<tr>";
                output += "<td>"+key1+" </td>";
                output += "<td>"+value1+" </td>";
                output += "</tr>";  
                });
                output += "</ul>";
                }
                }
                }
               });
               });
               output += "</ul>"; 
            $('p').html(output);
            },
4

1 回答 1

1

在您看来,您需要将 HTML(2) 呈现为字符串并使用原始的 Django 电子邮件功能来实际发送它。

from django.core.mail import send_mail
from django.template.loader import render_to_string


emailBody = render_to_string('email_template.html', {'templateVars': 'values'})

send_mail('Subject here', 'emailBody, 'from@example.com', ['to@example.com'], fail_silently=False)

至于 CSS 部分,您要么需要单独托管它,要么将其嵌入到电子邮件正文中。那是另一个主题。

于 2013-10-08T20:22:03.700 回答