JavaScript を使用してクライアント側の電子メールを作成できますか?
-
08-06-2019 - |
質問
クライアント側のメールクリエーターのWebページを作成したいと考えています。私は HTML フォームで mailto アクションを使用する場合の問題を知っています (標準ではなく、クライアントにデフォルトのメール アプリケーションが設定されていません)。しかし、Web ページはそれほど重要ではなく、彼らもあまり気にしません。
mailto アクションによって作成されるメールの構文は次のとおりです。
主題:未定義の主題
体:パラメータ1=値1
パラメータ2=値2
.
.
.
paramn=値
JavaScript を使用してメールをこのような形式にできますか?
件名:XXXXX
体:値1;値2;値3...値N
解決
プロジェクトで使用したのは、mailto を開くポップアップ ウィンドウです。これは、すべてのメール クライアント (少なくとも使用されているすべてのクライアント) で機能するデフォルトのメール クライアント内でメールを作成することができる唯一の方法です。
var addresses = "";//between the speech mark goes the receptient. Seperate addresses with a ;
var body = ""//write the message text between the speech marks or put a variable in the place of the speech marks
var subject = ""//between the speech marks goes the subject of the message
var href = "mailto:" + addresses + "?"
+ "subject=" + subject + "&"
+ "body=" + body;
var wndMail;
wndMail = window.open(href, "_blank", "scrollbars=yes,resizable=yes,width=10,height=10");
if(wndMail)
{
wndMail.close();
}
他のヒント
ブラウザ経由でメールを送信する場合、ほぼ 2 つの選択肢しかありません。
- ユーザー入力を受け取るページを作成し、ユーザーが Web サーバー経由でメールを送信できるようにします。これには、ある種のサーバー側スクリプトが必要です。
- mailto を使用します:ユーザーが登録したメールクライアントを開くためのリンク。これには、あなたが言及した明らかな落とし穴があり、柔軟性が低くなります。ただし、必要な作業は少なくなります。
JavaScript だけでは、 ありえない.
JavaScript はそのようなことを行うことを意図したものではなく、JavaScript が存在する Web ブラウザ以外のものと対話する方法が著しく制限されています (正当な理由があります!)。
考えてみてください:スパマーは、何千ものランダムな電子メール アドレスに自動的にメールを送信するクライアント側 JavaScript を使用して Web サイトを作成します。人々がそのサイトにアクセスした場合、全員が自分のコンピュータを使って分散型大量メール詐欺に参加することになります...感染やユーザーの操作は必要ありません。
mailto リンクを作成し、JavaScript を使用して起動できます。
var mail = "mailto:buddy@mail.com?subject=New Mail&body=Mail text body";
var mlink = document.createElement('a');
mlink.setAttribute('href', mail);
mlink.click();
メールの送信を処理するページにデータを送信できない理由はありますか?ほとんどの言語で電子メールを送信するのは非常に簡単なので、クライアント側にプッシュする強い理由がない限り、その方法をお勧めします。