用于发送电子邮件的Javascript函数不起作用(固定命令打开outlook,而函数不起)

Javascript function for email sending is not working (fixed command opens outlook while function doesn't)

本文关键字:函数 outlook 命令 电子邮件 Javascript 用于 不起作用      更新时间:2023-09-26

我正在创建一个网站,我必须将表单的文本作为电子邮件发送。我在正文之前运行脚本,所以函数不起作用,所以会阻塞整个脚本。我使用的功能是:

function Email(){
                var command='mailto:blahblah@gmail.com?Subject=';
                command=+ document.getElementById('subject').value;
                command=+ "&body=";
                command=+ document.getElementById('context').value;
                window.location.href=command;
            }

因此,基本上,用户在两个字段中输入电子邮件的主题和消息,我希望它作为电子邮件发送,但它不会像我使用固定命令时那样打开outlook。

我使用的HTML代码是:

<button onclick="Email();"> Send </button> 

我更正了评论中提到的所有内容,现在我收到一个错误,说:

Firefox在/C:/…找不到该文件/NaN。检查文件名是否存在大写或其他键入错误。检查文件是否已移动、重命名或删除。

mailto链接只是用来邀请用户使用自己的邮件客户端发送电子邮件。您无法直接从应用程序中的javascript发送电子邮件。你必须将表单的内容发送到你的服务器,然后从那里通过电子邮件发送。有很多用于发送电子邮件的服务器端库(我使用nodemailer),或者你可以使用一个服务为你发送邮件,比如mailchimp或sendgrid。

之前回答的是什么,还有一件事。您需要在document.getElementById语句的末尾添加.value。否则,它将返回一个节点而不是一个值。

这是更新的html和javascript:

<form id="mailform">
  subject <input type="text" id="subject">
  context <input type="text" id="context">
 <input type="submit" value="submit">
</form>

//javascript

function Email(){
    var subject = document.getElementById('subject').value;
     var context = document.getElementById('context').value;
            var command='mailto:blahblah@gmail.com?Subject=';
            command=+ subject;
            command=+ "&body=";
            command=+context;

            window.location.href=command;
        }
document.getElementById('submit').addEventListener('click', function(e){
e.preventDefault();
Email();
});