我想使用javascript发送电子邮件而不使用outlook。我不想使用使用outlook发送电子邮件的mailto对象。
JavaScript是否提供了将表单中提交的数据发送到电子邮件地址的直接方法。
答案 0 :(得分:5)
有点儿。至少,您可以执行以下操作:
通过JavaScript,您可以调用基于服务器的服务,该服务可以通过SMTP发送电子邮件。是否通过简单的表单提交到您自己的服务器或通过远程服务的XmlHttpRequest
只是a)你是否自己实现它以及b)你是否能够在其他地方找到服务。
tl; dr:
答案 1 :(得分:4)
这将是一些工作,但我认为Websockets
你可以让它发挥作用。
然后您需要自己实施SMTP协议:
http://www.smtp2go.com/articles/smtp-protocol.html
这是一个关于websockets的教程:
http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/
您可能需要阅读websockets规范以获取更多详细信息:
http://dev.w3.org/html5/websockets/#the-websocket-interface
因此,从理论上讲,您应该可以这样做,但根据规范,SMTP通常会被阻止来自Websockets:
如果port是用户代理配置为阻止的端口 访问,然后抛出SecurityError异常。 (通常是用户代理 阻止访问SMTP等知名端口。)
但是,这通常是被阻止的,并非总是或者是必需的,所以它可能会起作用,并且是我能看到javascript发送电子邮件的唯一方式。
答案 2 :(得分:3)
没有
这样的功能会带来安全风险,因为它很容易被垃圾邮件发送者滥用。要在不打开用户默认电子邮件客户端实例的情况下直接发送电子邮件,您必须将数据传递给将发送电子邮件的服务器。
答案 3 :(得分:1)
我认为您应该编写一个接受电子邮件地址和电子邮件内容的后端程序,然后发送电子邮件。然后,您可以在浏览器中使用Ajax将表单提交到后端。
答案 4 :(得分:1)
我真的希望用客户端代码无法做到这一点,因为我真的不想在我不知情的情况下使用我的PC发送电子邮件的随机网页。
说完了,我肯定答案是“不”。
“mailto”的重点在于它打开用户的默认电子邮件程序(不一定是Outlook),以便他们知道他们正在发送电子邮件并可以在继续之前编辑所有字段(假设他们想要继续)
我能想到的最接近的是您的JavaScript对您的网络服务器进行Ajax调用,然后从您的服务器端代码发送电子邮件。
答案 5 :(得分:1)
打开的邮件程序取决于单个客户端计算机上的默认设置。
要发送电子邮件而不触及Outlook,Thunderbird等电子邮件程序,那么你需要使用某种服务器端语言,如PHP,这很容易做,而且有很多资源在那里,以便你可以实现你想要的。
答案 6 :(得分:1)
NO! JavaScript无法通过电子邮件发送表单!但是,还有其他方法可以将表单数据发送到电子邮件地址。
JavaScript没有提供将表单中提交的数据发送到电子邮件地址的直接方法。
不提供“JavaScript电子邮件表单”功能的主要问题是安全性。 假设JavaScript中有一项功能可以发送电子邮件。一些恶意编码器可以编写脚本,以便在您访问其页面时立即将电子邮件发送到某个地址。这将在您不知情的情况下向某些第三方透露您的电子邮件地址。他们将开始在您的邮箱中填写大量垃圾邮件!