发送电子邮件使用Javascript发送电子邮件使用Javascript(Sending email

2019-05-10 10:19发布

这是一个有点混乱来解释,所以在这里和我一起承担......

我想建立一个系统,用户可以通过我的网站发送电子邮件模板,但它没有使用我的服务器实际发送 - 它,而不是只是准备去的电子邮件中打开了自己的本地邮件客户端。 该应用程序将填写电子邮件的正文与预定义变量,以节省不必键入它自己的用户。 然后,他们可以根据需要编辑消息,它应该不完全适合自己的目的。

有一些我希望它通过用户的本地邮件客户端去的原因,因此让服务器发送的电子邮件是不是一种选择:它必须是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

  1. 包括脚本:

<script src="https://smtpjs.com/v2/smtp.js"> </script>

  1. 发送使用电子邮件:

    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