AngularJS mailto不发送电子邮件

时间:2014-04-08 00:12:51

标签: angularjs

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

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

控制器代码:

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

        window.location.href = link;
     };

2 个答案:

答案 0 :(得分:18)

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

首先,空格不是主题中的有效字符。您可能必须将其替换为%20

其次,您需要将主题前的&更改为?。否则,它会尝试向该地址发送一封电子邮件,包括所有主题和正文参数......

你可以试试这个:

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

    window.location.href = link;
 };

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

答案 1 :(得分:6)

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

这样:

+ escape(subject);

应该是:

+ escape(subject)