基本的に、あなたの質問に対するコメントは正しい - JavaScriptでこれを行うことはできません。バックエンドサービスを使用する必要があります。
ここで、sendMail
関数で行うことは、Angularsの$http
サービスを使用してサービスを呼び出すことです。 official documentationから$ httpサービスの詳細を知ることができます。
コールは、例えば次のようになります。ここでは
$http({
method: 'POST',
url: 'http://your.server.com/sendmail.php',
data: { mailTo: '[email protected]', msg: 'hello!' }
}).then(function successCallback(response) {
alert("msg sent!");
}, function errorCallback(response) {
alert("error with sending a msg");
});
次の2つの重要な部分があります。
url
- (最終的には電子メールを送信します)あなたのサービスが配置されている
data
- このサービスエンドポイントに何を送っていますか?
私の例では、サービスURLをsendmail.php
としました。これは最終的にPHPで書かれています。あなたのバックエンドサービスはあなたが慣れ親しんだサーバーサイドの言語で書くことができることを強調しなければなりません(このトピックをさらに調査する場合はRESTful servicesについてさらに読んでください)。
この例のために、電子メールを送信するためにmail functionを使用してPHPスクリプト(無担保とちょうど参照用)はこのようなものになります。
<?php
$to = $_POST["emailTo"];
$msg = $_POST["msg"];
mail($to, "Some test subject", $msg);
?>
希望を、これは明確な混乱を支援。
このためにバックエンドが必要です。 JSだけではできません。 – dfsq
メールを送信するには、SMTPサーバーが必要です。 –