2013-10-08 70 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