AngularJS mailto不发送电子邮件

MCh*_*han 10 angularjs

我使用以下代码允许我的AngularJS应用程序用户使用他们喜欢的邮件客户端发送电子邮件,但是当我点击"发送"按钮时没有任何反应.有人可以检查我的代码并告诉我这里到底缺少什么?谢谢

<button type="button" ng-click="sendEmail(message.Email, message.subject, message.body)" >Send</button>
Run Code Online (Sandbox Code Playgroud)

控制器代码:

    $scope.sendEmail = function(email, subject, body){
        var link = "mailto:"+ email
                 + "&subject=New email " + escape(subject);
                 + "&body=" + escape(body); 

        window.location.href = link;
     };
Run Code Online (Sandbox Code Playgroud)

小智 18

我能想到的两件事可能在这里错了.

首先,Spaces不是主题中的有效字符.你可能不得不用一个替换它%20.

其次,你需要&在主题之前改变一个?.否则,它会尝试向该地址发送电子邮件,包括所有主题和正文参数......

你可以试试这个:

$scope.sendEmail = function(email, subject, body) {
    var link = "mailto:"+ email
             + "?subject=New%20email " + escape(subject)
             + "&body=" + escape(body); 

    window.location.href = link;
 };
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看更多信息:http: //en.wikipedia.org/wiki/Mailto


小智 6

如果有人仍在使用upvoted答案,请记住删除主题转义符上的分号.

这个:

+ escape(subject);
Run Code Online (Sandbox Code Playgroud)

应该:

+ escape(subject)
Run Code Online (Sandbox Code Playgroud)