我能用JavaScript创建客户端邮件吗?

19

我想创建一个客户端邮件创建网页。我知道在HTML表单中使用mailto行动存在的问题(不是标准的,客户端上没有默认的邮件应用程序设置)。但这个网页并不是很重要,他们也不太在意。

邮件通过mailto操作创建的语法如下:

主题:未定义的主题
正文:

param1=value1
param2=value2
.
.
.
paramn=valuen

我能使用JavaScript将邮件格式化成这样吗?

主题:XXXXX

正文: Value1;Value2;Value3...ValueN

5个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
18

我们在项目中使用的是一个弹出的窗口,打开一个mailto:链接,这是我们找到的唯一一种在所有邮件客户端上都能起作用的默认邮件客户端内撰写邮件的方式。

var addresses = "";//between the speech mark goes the receptient. Seperate addresses with a ;
var body = ""//write the message text between the speech marks or put a variable in the place of the speech marks
var subject = ""//between the speech marks goes the subject of the message
var href = "mailto:" + addresses + "?"
         + "subject=" + subject + "&"
         + "body=" + body;
var wndMail;
wndMail = window.open(href, "_blank", "scrollbars=yes,resizable=yes,width=10,height=10");
if(wndMail)
{
    wndMail.close();    
}

似乎在IE 8中无法工作。根据调试器,wndMail为空。 - Eugene Katz
很抱歉听到这个消息。这是来自使用IE6的旧项目。请随意编辑以改进 :) - Vincent Robert
到目前为止还没有找到解决方案。 - Eugene Katz
我正在使用提供的代码@Vincent Robert,但它只打开了Google Chrome,之后什么也没有发生,请告诉我现在该怎么办! - Mahavirsinh Padhiyar

6

当通过浏览器发送邮件时,您基本上只有两个选择:

  1. 创建一个页面,接受用户输入,并允许他们通过您的 Web 服务器发送邮件。这需要一些服务器端脚本。
  2. 使用 mailto: 链接来触发用户已注册的邮件客户端打开。这种方法显然存在您提到的缺点,并且不够灵活。但它需要的工作较少。

4
只用javascript是不可能实现的。
Javascript并不旨在做这样的事情,并且在与除了它所在的Web浏览器之外的任何东西进行交互方面受到严重限制(有充分的理由!)。

想一想:一个垃圾邮件发送者编写一个带有客户端javascript的网站,该网站将自动向数千个随机电子邮件地址发送邮件。 如果人们访问该网站,他们将参与分布式大规模邮件诈骗,而无需感染或用户交互!


3
但是,mailto操作并不发送邮件,它只调用客户端默认的电子邮件应用程序并创建一封新邮件,但不会发送它。因此,这样的恶意软件网站无法在没有用户合作的情况下发送垃圾邮件。我只想要JavaScript格式化消息正文,而不是发送它,但查看答案,这是不可能的。 - Telcontar

1

您可以使用 JavaScript 创建邮件链接并触发它:

  var mail = "mailto:buddy@mail.com?subject=New Mail&body=Mail text body";  
  var mlink = document.createElement('a');
  mlink.setAttribute('href', mail);
  mlink.click();

-1

你为什么不能把数据发送到一个处理邮件发送的页面呢?在大多数编程语言中,发送电子邮件非常容易,所以除非有强烈的理由要将其推送到客户端,否则我建议采用这种方式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,