web-dev-qa-db-ja.com

デフォルトのメールクライアントを自動的に開き、コンテンツを事前入力します

ユーザーがページにコンテンツを保存するときに、ユーザーのデフォルトのメールクライアントを自動的に開く必要があります。メールの件名を入力し、アドレスを指定して、メール本文にコンテンツを入れる必要があります。

これを達成するための最良の選択肢は何ですか?

mailto:属性は知っていますが、ユーザーはこれをクリックする必要があり、件名と内容を指定できるかどうかわかりませんか?

59
Thomas Buckley

RFC 6068 で説明されているように、mailtoでは、subjectおよびbody、およびccフィールド。例えば:

mailto:[email protected]?subject=Subject&body=message%20goes%20here

JavaScriptで強制的に開く の場合、ユーザーはリンクをクリックする必要はありません。

window.location.href = "mailto:[email protected]?subject=Subject&body=message%20goes%20here";

ブラウザ/メールクライアントがmailtoリンクを処理する単一の標準的な方法はないことに注意してください(たとえば、件名と本文のフィールドは警告なしに破棄される場合があります)。また、ポップアップや広告ブロッカー、ウイルス対策ソフトウェアなどが、mailtoリンクの強制開封を静かにブロックするリスクもあります。

96
jsalonen

JQuery:

$(function () {
      $('.SendEmail').click(function (event) {
        var email = '[email protected]';
        var subject = 'Test';
        var emailBody = 'Hi Sample,';
        var attach = 'path';
        document.location = "mailto:"+email+"?subject="+subject+"&body="+emailBody+
            "?attach="+attach;
      });
    });

HTML:

 <button class="SendEmail">Send Email</button>
7
user5506072

使ってみてください

<a href="mailto:[email protected]"><img src="ICON2.png"></a>

デフォルトのメールを直接開きます

1
subindas pm

Jqueryを使用せずにこの方法を実装しました。

<button class="emailReplyButton" onClick="sendEmail(message)">Reply</button>

sendEmail(message) {
    var email = message.emailId;
    var subject = message.subject;
    var emailBody = 'Hi '+message.from;
    document.location = "mailto:"+email+"?subject="+subject+"&body="+emailBody;
}
1
vikram kedlaya