2013-10-08 91 views
0

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

p.s:我也有css文件,它定义了HTML(2)的布局。我想确保收件人可以查看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); 
      }, 
+0

https://docs.djangoproject.com/en/dev/topics/email/ –

+0

CSS不安全的使用电子邮件;特别是没有单独的CSS文件 –

回答

1

在您看来,您需要将HTML(2)呈现为字符串并使用vanilla 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, '[email protected]', ['[email protected]'], fail_silently=False) 

就CSS文件而言,您需要单独托管或将其嵌入到电子邮件正文中。这是另一个主题。

+0

感谢您的指点!如果你注意到我的问题,我正在创建基于repsonse的HTML(2),以在JQuery脚本中调用AJAX。我没有访问脚本中的Django模块。 我有复制粘贴在我的“编辑”问题的JQuery部分。 – user1524625

+0

如果'完成'HTML(2)仅在本地客户端上运行,我认为这不会起作用。如果仅由于明显的安全隐患而在本地渲染,则无法触发发送内容的电子邮件。您需要像上面那样进行重构,以便“完成”HTML(2)位于服务器上,并可以发送到服务器端。 – slumtrimpet

相关问题