nic*_*ckf 105 javascript email client-side
这有点令人困惑解释,所以在这里忍受我...
我想建立一个系统,用户可以通过我的网站发送模板化的电子邮件,除非它实际上并没有使用我的服务器发送 - 它只是打开他们自己的本地邮件客户端,并准备好电子邮件.应用程序将使用预定义变量填充电子邮件正文,以保存用户必须自己键入.然后,如果消息不完全符合他们的目的,他们可以根据需要编辑消息.
我希望它通过用户的本地邮件客户端有很多原因,因此让服务器发送电子邮件不是一个选择:它必须是100%客户端.
我已经有一个主要运行的解决方案,我会发布详细信息作为答案,我想知道是否有更好的方法?
nic*_*ckf 131
我现在这样做的方式基本上是这样的:
HTML:
<textarea id="myText">
Lorem ipsum...
</textarea>
<button onclick="sendMail(); return false">Send</button>
Run Code Online (Sandbox Code Playgroud)
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;
}
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,这很有效.唯一的问题是,如果身体特别长(超过2000个字符),那么它只是打开一个新的电子邮件,但它没有信息.我怀疑它与超出URL的最大长度有关.
小智 17
这是使用jQuery和"元素"点击的方式:
$('#element').click(function(){
$(location).attr('href', 'mailto:?subject='
+ encodeURIComponent("This is my subject")
+ "&body="
+ encodeURIComponent("This is my body")
);
});
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过从输入字段(即使用$('#input1').val()或通过服务器端脚本)提供内容来获取您的内容$.get('...').玩得开心
Rya*_*rty 11
你不需要任何javascript,你只需要你的href编码如下:
<a href="mailto:me@me.com">email me here!</a>
Run Code Online (Sandbox Code Playgroud)
您可以使用此免费服务:https://www.smtpjs.com
<script src="https://smtpjs.com/v2/smtp.js"></script>
发送电子邮件使用:
<script src="https://smtpjs.com/v2/smtp.js"></script>
如何在文本框上进行实时验证,一旦超过2000(或任何最大阈值),则显示"此电子邮件太长,无法在浏览器中完成,请<span class="launchEmailClientLink">launch what you have in your email client</span>"
我有
.launchEmailClientLink {
cursor: pointer;
color: #00F;
}
Run Code Online (Sandbox Code Playgroud)
并将jQuery这个放入你的onDomReady中
$('.launchEmailClientLink').bind('click',sendMail);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
336721 次 |
| 最近记录: |