当前位置:  开发笔记 > 编程语言 > 正文

使用Javascript发送电子邮件

如何解决《使用Javascript发送电子邮件》经验,为你挑选了4个好方法。

这有点令人困惑解释,所以在这里忍受我...

我想建立一个系统,用户可以通过我的网站发送模板化的电子邮件,除非它实际上并没有使用我的服务器发送 - 它只是打开他们自己的本地邮件客户端,并准备好电子邮件.应用程序将使用预定义变量填充电子邮件正文,以保存用户必须自己键入.然后,如果消息不完全符合他们的目的,他们可以根据需要编辑消息.

我希望它通过用户的本地邮件客户端有很多原因,因此让服务器发送电子邮件不是一个选择:它必须是100%客户端.

我已经有一个主要运行的解决方案,我会发布详细信息作为答案,我想知道是否有更好的方法?



1> nickf..:

我现在这样做的方式基本上是这样的:

HTML:



Javascript:

function sendMail() {
    var link = "mailto:me@example.com"
             + "?cc=myCCaddress@example.com"
             + "&subject=" + escape("This is my subject")
             + "&body=" + escape(document.getElementById('myText').value)
    ;

    window.location.href = link;
}

令人惊讶的是,这很有效.唯一的问题是,如果身体特别长(超过2000个字符),那么它只是打开一个新的电子邮件,但它没有信息.我怀疑它与超出URL的最大长度有关.


使用encodeURIComponent优先进行转义,它遵循与URL编码不同的任意规则.尽管Unicode字符仍有可能失败......但是整个事情很可能无论如何都会失败.带参数的mailto链接超级不可靠,不应该真正使用.
bobince:是的,我认为这是一种狡猾的方式,但是替代方案是什么?

2> 小智..:

这是使用jQuery和"元素"点击的方式:

$('#element').click(function(){
    $(location).attr('href', 'mailto:?subject='
                             + encodeURIComponent("This is my subject")
                             + "&body=" 
                             + encodeURIComponent("This is my body")
    );
});

然后,您可以通过从输入字段(即使用$('#input1').val()或通过服务器端脚本)提供内容来获取您的内容$.get('...').玩得开心



3> Ryan Doherty..:

你不需要任何javascript,你只需要你的href编码如下:

email me here!



4> alex..:

如何在文本框上进行实时验证,一旦超过2000(或任何最大阈值),则显示"此电子邮件太长,无法在浏览器中完成,请launch what you have in your email client"

我有

.launchEmailClientLink {
cursor: pointer;
color: #00F;
}

并将jQuery这个放入你的onDomReady中

$('.launchEmailClientLink').bind('click',sendMail);

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有