2013-10-21 16 views
18

我正在角應用中實現簡單的電子郵件反饋功能。該郵件具有預定義的郵件主題和內容模板。角度控制器需要啓動客戶端電子郵件客戶端(如調用「mailto:[email protected]」)並執行預定義主題,內容模板。任何機構知道如何執行它?如何在AngularJS控制器中調用mailto

+2

可能使用[用Javascript發送電子郵件]的副本(http://stackoverflow.com/questions/271171/sending-emails-with-javascript) –

+2

您可能可以將其封裝到指令中。 [這是其他人放在一起](https://github.com/updatezen/angular-mailto)。 –

+3

如果您現在已經回答了這個問題,那麼您應該在下面輸入答案(不是問題的一部分)並將其標記爲答案,因此其他StackOverflow用戶立即明白此問題已經解決。 – ClearCloud8

回答

3

使用$ window.location的:

$window.location = "mailto:..." 
+1

不適用於iOS 9.1 – Sheetal

+0

這不會打開不需要新的瀏覽器選項卡,而location.open()會。如果您確定該用戶需要打開外部郵件客戶端,似乎會更好。 – garfunkel61

16

進樣$window和使用$window.open()方法。

內部控制定義...

$scope.sendMail = function(emailId,subject,message){ 
    $window.open("mailto:"+ emailId + "?subject=" + subject+"&body="+message,"_self"); 
}; 

,並調用它像...

$scope.sendMail("[email protected]","Mail Subject","Mail Body Message"); 
0

這應該谷歌郵件或電子郵件客戶端中打開新的標籤頁,根據用戶的設置。

在角JS:字符串連接控制器中,像這樣:

$scope.mailLink = "mailto:" + $scope.emailId + "?subject=" + $scope.Subject + '&body=' + $scope.bodyText; 

HTML

<a ng-href="{{mailLink}}" target="_blank">Send</a> 
0

location.href的作品呢!

$scope.email = function(item){ 
    location.href= 'mailto:' + $scope.allemails (array) + '?subject=Subject you want'; 
} 

注意:如果你有一個數組中$scope.allemails,並且您將使用方法.join(', ') - thunderbringer電子郵件客戶端將無法辨識此電子郵件的集合,它會增加一個新系列的「收件人:」每來自陣列的電子郵件。

相關問題