【问题标题】:Sending html emails with JavaScript [duplicate]使用 JavaScript 发送 html 电子邮件 [重复]
【发布时间】:2013-02-11 22:44:39
【问题描述】:

我正在创建一个发送电子邮件的表单(仅使用 HTML 和 JavaScript)。我想在电子邮件正文中插入一个简单的 HTML 表格。像这样的:

<table border=1> <tr><td>blabla</td></tr> </table>

单击“发送”按钮后,将调用一个 JavaScript 函数,该函数通过 URL 发送电子邮件,POST 数据出现在我的电子邮件客户端 - Outlook(这对我来说没问题)中,但格式存在问题。电子邮件正文中的数据是纯文本格式。

  1. 有没有其他方法可以仅使用 JavaScript 来做到这一点?
  2. 是否有必要使用某种服务器端脚本(如 PHP 或其他)来正确格式化它?

【问题讨论】:

  • 看看 PHP heredocs
  • 如果您可以设置 MIME 类型和内容类型,换句话说,如果您可以设置标头数据,那么您可以在不使用服务器端代码的情况下执行此操作。
  • @Vladimir 我正在使用
    如果这就是你的意思。我试图避免使用服务器端代码。

标签: javascript html


【解决方案1】:

如果您查看源代码,&amp;lt; 字符是什么样的?如果它们像&amp;#60;&amp;lt;,那么您需要禁用这些编码。此外,您需要将格式设置为 HTML 邮件。抱歉,我不是 PHP 人,但我猜你需要服务器端代码。

【讨论】:

  • 如何禁用编码?这与
    选项有关吗?
  • 你看源码确认
  • 我尝试了两个 的适当 url 编码
  • 试试@Tapas 的回答。对我来说听起来不错..
【解决方案2】:

您可以使用 JavaScript mailto 功能。试试这个,希望对你有帮助

<div id="mailBody"><table border=1> <tr><td>blabla</td></tr> </table></div>
<input type="button" onclick="sendMail();">

在脚本标签下

function sendMail()
{
   var mailBody=document.getElementById('mailBody').innerHTML;
   window.location="mailto:yourmail@domain.com?subject=hii&body="+mailBody;
}

【讨论】:

    【解决方案3】:

    如果您只想使用 java 脚本发送 HTML 电子邮件,请尝试如下...

    但我有不推荐这种类型的邮件发送....

    通过 Javascript 发送 HTML 电子邮件:

    function SendEmail()
    {
        var outlookApp = new ActiveXObject("Outlook.Application");
        var nameSpace = outlookApp.getNameSpace("MAPI");
        mailFolder = nameSpace.getDefaultFolder(6);
        mailItem = mailFolder.Items.add('IPM.Note.FormA');
        mailItem.Subject = "Me";
        mailItem.To = "me@me.com";
        mailItem.HTMLBody = "<table border=1> <tr><td>blabla</td></tr> </table>";
        mailItem.display(0);
    }
    

    如果您只想通过 javascript 以纯文本形式发送电子邮件,请尝试如下...

    通过 Javascript 发送纯文本:

    window.open('mailto:test@example.com?subject=subject&body=Testing Email');
    

    最好使用服务器端编码来发送电子邮件

    【讨论】:

    • 我没有否决你的答案,但我想这是因为这只有在你同时拥有 Internet Explorer 和 0utlook 时才有效,你没有提到这个限制。
    • Martjin 说得对。
    • 它在 chrome 浏览器上不起作用。
    • 它不适用于任何浏览器,只能在称为Internet Explorer 的垃圾堆上运行。
    猜你喜欢
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 2015-08-04
    • 2015-06-10
    • 1970-01-01
    • 2015-02-19
    相关资源
    最近更新 更多