这是一个有点混乱来解释,所以在这里和我一起承担......
我想建立一个系统,用户可以通过我的网站发送电子邮件模板,但它没有使用我的服务器实际发送 - 它,而不是只是准备去的电子邮件中打开了自己的本地邮件客户端。 该应用程序将填写电子邮件的正文与预定义变量,以节省不必键入它自己的用户。 然后,他们可以根据需要编辑消息,它应该不完全适合自己的目的。
有一些我希望它通过用户的本地邮件客户端去的原因,因此让服务器发送的电子邮件是不是一种选择:它必须是100%的客户端。
我已经有一个主要工作的解决方案运行,而我会后的那个细节作为一个答案,我不知道是否有什么更好的办法?
Answer 1:
现在我在做它的方式基本上是这样的:
该HTML:
<textarea id="myText">
Lorem ipsum...
</textarea>
<button onclick="sendMail(); return false">Send</button>
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的最大长度做被超过。
Answer 2:
下面是使用jQuery和“元素”点击这样做的方式:
$('#element').click(function(){
$(location).attr('href', 'mailto:?subject='
+ encodeURIComponent("This is my subject")
+ "&body="
+ encodeURIComponent("This is my body")
);
});
然后,你可以通过输入字段喂养它(即使用让您的内容$('#input1').val()
或通过与服务器端脚本$.get('...')
玩得开心
Answer 3:
你不需要任何JavaScript,你只需要您的href进行编码是这样的:
<a href="mailto:me@me.com">email me here!</a>
Answer 4:
怎么样有在文本框中现场验证,一旦越过2000(或任何的最大门槛),然后显示“此邮件过长在浏览器中完成,请<span class="launchEmailClientLink">launch what you have in your email client</span>
对此我不得不
.launchEmailClientLink {
cursor: pointer;
color: #00F;
}
和jQuery到您的onDomReady这
$('.launchEmailClientLink').bind('click',sendMail);
Answer 5:
你可以使用这个免费服务: https://www.smtpjs.com
- 包括脚本:
<script src="https://smtpjs.com/v2/smtp.js"> </script>
发送使用电子邮件:
Email.send("from@you.com", "to@them.com", "This is a subject", "this is the body", "smtp.yourisp.com", "username", "password");
Answer 6:
如果只是要开拓用户的客户端发送电子邮件,为什么不让他们组成它有作为。 你失去跟踪他们发送什么样的能力,但如果这并不重要,那么就收集的地址和主题,并弹出客户端让用户填写的身体。
Answer 7:
随着这个想法的问题是,用户必须拥有一个电子邮件客户端,如果他靠提醒服务,这是许多用户的情况下,这是不是这样的。 (至少没有掉头重定向到这个网络邮件十几年前,当我研究这个问题)。
这就是为什么通常的解决办法是依靠PHP的mail()发送电子邮件(服务器端,然后)。
但是,如果现在“电子邮件客户端”始终设置,自动,潜在的Webmail客户端,我会很高兴地知道。
Answer 8:
发送请求mandrillapp.com :
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
console.log(xhttp.responseText);
}
}
xhttp.open('GET', 'https://mandrillapp.com/api/1.0/messages/send.json?message[from_email]=mail@7995.by&message[to][0][email]=zdanevich.vitaly@yaa.ru&message[subject]=Заявка%20с%207995.by&message[html]=xxxxxx&key=oxddROOvCpKCp6InvVDqiGw', true);
xhttp.send();
文章来源: Sending emails with Javascript