2008-08-11 107 views
13

我想创建一个客户端邮件创建者网页。我知道在html表单中使用mailto操作的问题(不是标准的,在客户端上没有默认的邮件应用)。但是网页并不是非常重要,他们并不在乎。我可以使用JavaScript创建客户端电子邮件吗?

通过的mailto动作创建的邮件具有语法:

受试者:受试者未定义
体:

参数1 = VALUE1
param2的=值2



paramn = valuen

我可以用JavaScript来格式化邮件吗?

主题:XXXXX

身体: 值1;值2;值3 ...值N

回答

15

我们在projet中使用的是一个打开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();  
} 
+0

似乎无法在IE 8中工作。根据调试器,wndMail为空。 – 2009-11-03 16:41:36

+0

很抱歉听到这个消息。它来自使用IE6的旧项目。随意编辑以提高:) – 2009-11-03 17:11:37

0

是否有一个原因,你不能只将数据发送到处理发送页面邮件?在大多数语言中发送电子邮件非常容易,所以除非有很强的理由将其推送到客户端,否则我会推荐该路由。

6

你或多或少通过浏览器在发送邮件时只有两种选择..

  1. 做一个网页,需要用户输入,并允许他们通过你的Web服务器来发送邮件。这需要某种服务器端脚本。
  2. 使用mailto:链接触发用户注册邮件客户端的打开。这有你提到的明显的缺陷,并且不够灵活。尽管如此,它需要更少的工作
4

只有javascript,它的不可能
JavaScript并不打算做这样的事情,并且它可以与除了它所在的网页浏览器之外的其他任何东西进行交互的方式严重瘫痪(出于正当理由!)。

想一想:一个垃圾邮件发送者写一个客户端JavaScript的网站,它会自动邮寄到数以千计的随机电子邮件地址。如果人们应该去那个网站,他们都将参与一个分布式群发邮件骗局,用他们自己的电脑......无需感染或用户交互!

+3

但这个mailto动作不发送邮件,只是调用客户端的默认电子邮件应用程序和创建新的邮件,但没有发送。因此,这样的恶意软件站点无法在用户协作的情况下发送垃圾邮件。我只想JavaScript来格式化消息的正文,而不是发送它,但查看答案这是不可能的。 – Telcontar 2008-08-11 09:45:58

1

您可以创建一个mailto链接,并使用JavaScript火了:

var mail = "mailto:[email protected]?subject=New Mail&body=Mail text body"; 
    var mlink = document.createElement('a'); 
    mlink.setAttribute('href', mail); 
    mlink.click(); 
相关问题