我希望能够在HTML5中发送电子邮件。我不想强制用户打开电子邮件客户端,我想直接从网页发送电子邮件。
顺便问一下,有没有办法用JavaScript实现这个功能?我知道可能不可能,只是想知道是否有任何巧妙的方法可以通过完全通过客户端来完成它。
我希望能够在HTML5中发送电子邮件。我不想强制用户打开电子邮件客户端,我想直接从网页发送电子邮件。
顺便问一下,有没有办法用JavaScript实现这个功能?我知道可能不可能,只是想知道是否有任何巧妙的方法可以通过完全通过客户端来完成它。
简而言之,不可以直接从客户端发送邮件(除非使用黑客技术)。
您可以通过向服务器发出ajax调用并发送电子邮件来完成此操作。
从客户端发送邮件而不使用邮件客户端的问题比较复杂。例如,大多数普通用户ISP都有自己的SMTP中继,所有25端口上的出站邮件都必须经过传输。您的网站将难以获得正确的信息来完成此操作。其次,Web浏览器不了解SMTP协议,XMLHttpRequest对象也不了解。
因此,如果您是黑客忍者,也许可以通过ActiveX、Java小程序或Flash等方式找到一些解决方案,但您基本上必须直接操作TCP套接字,并通过该套接字发出SMTP协议命令。
有很多需要克服的障碍,事实上我不知道如何做到这一点,但只要有意愿,就有办法。如果您找到了一个黑客技巧,不要感到惊讶,因为它可能会很快被主要的浏览器供应商修补。
这是不可能的。
相反,您应该使用AJAX在服务器上发送电子邮件。
使用JavaScript无法单独发送电子邮件。您需要一些服务器端处理(PHP,ASP等)来发送实际的电子邮件。
在此处有一个设置ajax表单的好教程: http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/
它不包括用于发送电子邮件的PHP(或ASP等),但是有很多教程可以教您如何使用PHP发送电子邮件。
来自官方资源:
它是如何工作的?
连接您的电子邮件服务 选择各种电子邮件服务。我们支持事务性电子邮件服务(Mailgun、Mailjet、Mandrill、SendGrid、Amazon SES和Postmark)和个人电子邮件服务(AOL、Gmail、FastMail、iCloud、Mail.ru、Outlook、Yahoo、Yandex和Zoho)。
创建电子邮件模板 从我们的模板设计列表中选择,或轻松构建自己的模板。 模板是参数化的,因此您可以通过Javascript进一步自定义它们。
使用我们的Javascript API发送电子邮件 添加我们的Javscript SDK,开始发送电子邮件!
这是一个典型的调用示例:
var service_id = 'my_mandrill';
var template_id = 'feedback';
var template_params = {
name: 'John',
reply_email: 'john@doe.com',
message: 'This is awesome!'
};
emailjs.send(service_id,template_id,template_params);
所有现有的API都需要使用密钥,显然你不想在前端代码中分享。指定的服务通过允许仅发送预定义模板来克服此问题,因此对于“与朋友分享”功能,您将创建一个名为“share”的模板。
你无法仅通过客户端代码完成它。
你可以通过服务器回调、AJAX来实现。