Mailto ссылка не копирует текст письма на Chromebook - PullRequest
11 голосов
/ 05 июня 2019

Я создаю ссылку mailto:, которая также содержит текст письма.Я открываю ссылку, используя JavaScript для запуска mailto: клиента ОС.В Chromebook по ссылке открывается Gmail с адресом электронной почты, но не с текстом письма.Это ссылка:

var MailToLink = 'mailto:test@test.com?subject=Test%20Email%20Subject&body=Great,%20the%20mailto%20protocol%20works%20and%20you%27re%20good%20to%20go.%20Good%20luck.'

Это строка, которую я использую для открытия ссылки: window.open(MailToLink, '_blank');

Она отлично работает в ОС Windows 10 с Thunderbird и Gmail для Android.

Что-то нужно изменить для Chromebook?

Ответы [ 4 ]

3 голосов
/ 21 июня 2019

А как насчет установки location.href вместо создания всплывающего окна?

location.href = "mailto:test@test.com?subject=Test%20Email%20Subject&body=Great,%20the%20mailto%20protocol%20works%20and%20you%27re%20good%20to%20go.%20Good%20luck."

Ищете ответ из достоверных и / или официальных источников.

Полезно знать, является ли этот предмет и текст в mailtoссылки описаны в RFC 2368 - Схема URL-адреса mailto

Клиенты, которые разрешают URL-адреса mailto в почтовые сообщения, должны иметь возможность правильно создавать почтовые сообщения, соответствующие RFC 822, используя темуЗаголовки "и" тела ".

Пожалуйста, обратите внимание, что есть абзац над" небезопасными заголовками "- так что я думаю, что содержание также может быть важным.

Небезопасные заголовки

Пользовательский агент, интерпретирующий URL-адрес mailto, ДОЛЖЕН выбрать не создавать сообщение, если какой-либо из заголовков считается опасным;он также может создать сообщение только с подмножеством заголовков, указанных в URL.Только заголовки Subject, Keywords и Body считаются безопасными и полезными.

2 голосов
/ 21 июня 2019

Попробуйте это

var MailToLink = 'mailto:test@test.com?subject=Test%20Email%20Subject&body=Great,%20the%20mailto%20protocol%20works%20and%20you%27re%20good%20to%20go.%20Good%20luck.'
var sendEmail = document.getElementById('sendEmail');

  sendEmail.addEventListener('click', function (e){
    window.location.href = MailToLink;
  });
<input type="button" id="sendEmail" value="submit">
1 голос
/ 21 июня 2019

Другой стабильный вариант - <a> и редактирование href с использованием JavaScript.

, например

var mailto = "mailto:test@test.com?subject=Test%20Email%20Subject&body=Great,%20the%20mailto%20protocol%20works%20and%20you%27re%20good%20to%20go.%20Good%20luck."

document.getElementById("myLink").setAttribute("href", mailto)
<html>
<body>
    <a id="myLink">Create email now!</a>
</body>
</html>

Не уверен, соответствует ли это вашим требованиям.

0 голосов
/ 19 июня 2019

Самое простое, что можно сделать, это использовать классическую почту для связи с помощью якорного тега, однако, я предполагаю, что вы используете JavaScipt по определенной причине, поэтому, возможно, если вы зададите простое имя в качестве второго аргумента, а не одинзначений «_blank» или «_self».например, вы можете назвать это 'emailWindow' или что-то в этом роде.

Вот ссылка MDN, созданная с использованием имени окна: https://developer.mozilla.org/en-US/docs/Web/API/Window/open#Parameters

, а ниже приведен код для его проверки.

* Примечание. ДляИз соображений безопасности я считаю, что StackOverflow отключил возможность открывать новое окно, поэтому вам придется проверять код кнопки локально, извините

var MailToLink = 'mailto:test@test.com?subject=Test%20Email%20Subject&body=Great,%20the%20mailto%20protocol%20works%20and%20you%27re%20good%20to%20go.%20Good%20luck.'

const sendEmailButton = document.getElementById('sendEmailButton');
sendEmailButton.onclick = () => {
    window.open(MailToLink, 'emailWindow');
    if (window.open && !window.closed) {window.close();}
};
<h1>Anchor Tag and Button Versions of Mail To</h1>

<h2>The anchor tag version</h2>
<a href="mailto:test@test.com?subject=Test%20Email%20Subject&body=Great,%20the%20mailto%20protocol%20works%20and%20you%27re%20good%20to%20go.%20Good%20luck.">test mail to using href</a>


<h2>the button version</h2>
<button type="button" id="sendEmailButton">test mail to using button</button>
...