Автоматично відкривати поштовий клієнт за замовчуванням та попередньо заповнювати вміст


78

Мені потрібно автоматично відкрити користувальницький поштовий клієнт за замовчуванням, коли вони зберігають певний вміст на сторінці. Мені потрібно заповнити тему електронної пошти, звернутися до неї та помістити деякий вміст у тіло електронної пошти.

Який найкращий варіант досягти цього?

Мені відомо про mailto:атрибут, але користувач повинен натиснути на нього, і я не впевнений, що це дозволяє вказати тему та вміст?


Ви можете встановити кожну частину електронного листа у префіксному href із поштою. Ось інструмент, який я створив, щоб зробити це просто: mailto.now.sh
Доусон Б

Відповіді:


123

Як описано в RFC 6068 , mailto дозволяє вказати тему та текст , а також поля копії . Наприклад:

mailto:username@example.com?subject=Subject&body=message%20goes%20here

Користувачеві не потрібно натискати посилання, якщо ви змусите його відкрити за допомогою JavaScript

window.location.href = "mailto:user@example.com?subject=Subject&body=message%20goes%20here";

Майте на увазі, що не існує єдиного, стандартного способу, яким браузери / поштові клієнти обробляють посилання на пошту (наприклад, поля теми та тексту можуть бути відкинуті без попередження). Також існує ризик того, що блокувальники спливаючих вікон та реклами, антивірусне програмне забезпечення тощо можуть мовчки блокувати примусове відкриття посилань на пошту.


1
Чи є спосіб завантажити зображення (не URL-адресу, а власне зображення) у повідомлення за допомогою jQuery?
Kousha

10
Що робити, якщо повідомлення перевищує ліміт символів? Це хороший обхідний шлях, але, здається, це не елегантне рішення.
leiseliesel

2
Що робити, якщо мені потрібно додати якийсь інший вміст як приклад зображення, css або html
UDID

1
Чи можна надіслати вкладення із зазначеними вище деталями?
Аджай Шарма 02

11

JQuery:

$(function () {
      $('.SendEmail').click(function (event) {
        var email = 'sample@gmail.com';
        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>

8
як надсилати HTML-вміст цим способом
Амай Кулкарні

3

Реалізовано таким чином без використання 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

Спробуйте це: Це відкриє безпосередньо пошту за замовчуванням.

<a href="mailto:demo@demo.com"><img src="ICON2.png"></a>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.