Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.08.2017, 13:49
Аспирант
Отправить личное сообщение для Sayler91 Посмотреть профиль Найти все сообщения от Sayler91
 
Регистрация: 04.03.2017
Сообщений: 90

Отправка письма через Outlook
Добрый день. Есть страничка html. Как создать письмо с табличкой из 1 строчки и 3 столбцов: Иванович|Иван|123456789, взятых из странички?

<table>
<tbody><tr>
                        <th>Фамилие</th>
                        <td colspan="2" style="width: 300px;">
                            <span id="lastname" xmlpathvalue="">Иванович</span>
                            &nbsp;</td>
                    </tr>
                    <tr>
                        <th>Имя</th>
                        <td colspan="2" style="width: 300px;">
                            <span id="firstname" xmlpathvalue="">Иван</span>
                            &nbsp;</td>
                    </tr>
                    <tr>
                        <th><span id="number">Телефон</span></th>
                        <td>
                            <span id="DataChangeNumber" xmlpathvalue="Number">123456789</span>
                        </td>
                    </tr>
 </tbody></table>
Ответить с цитированием
  #2 (permalink)  
Старый 12.08.2017, 16:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<form action="mailto:адрес мыла"> ....
Ответить с цитированием
  #3 (permalink)  
Старый 12.08.2017, 16:52
Аспирант
Отправить личное сообщение для Sayler91 Посмотреть профиль Найти все сообщения от Sayler91
 
Регистрация: 04.03.2017
Сообщений: 90

<!DOCTYPE html>
<html><head></head>
<body>
<a href="#" onclick="myFunction()">Клик</a>
<script>
function myFunction() {

var mailHtm ="<h1> Tekst <h1>";
var emailTo = "Komu";
var emailsubject = "Tema";
var emlCont = 'To: '+emailTo+'\n';
emlCont += 'Subject: '+emailsubject+'\n';
emlCont += 'X-Unsent: 1'+'\n';
emlCont += 'Content-Type: text/html'+'\n';
emlCont += ''+'\n';
emlCont += "<!DOCTYPE html><html><head></head><body>" + mailHtm + "</body></html>";
console.log(emlCont);
var textFile = null;
var data = new Blob([emlCont], {type: 'text/plain'});
if (textFile !== null) {
	window.URL.revokeObjectURL(textFile);
}
textFile = window.URL.createObjectURL(data);

var a = document.createElement('a');
var linkText = document.createTextNode("fileLink");
a.appendChild(linkText);
a.href = textFile;
a.id = 'fileLink';
a.download = emailsubject+".eml";
a.style.visibility = "hidden";
document.body.appendChild(a);
document.getElementById('fileLink').click();
}
</script>
</body></html>
Нашел вот такой код. Проблема в том что он создает файл, который нужно открывать. Можно сделать без нажатие на открыть, а сразу создавалось окно письма? И почему то не видится русский текст.
Ответить с цитированием
  #4 (permalink)  
Старый 12.08.2017, 17:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Вам чего надо - отправить письмо? Значит отправляйте обычную форму в полях которой помещайте все что нужно. А отправление, это отправка по протоколу mailto. Отправление будет только в том случае, если ваш интернет провайдер дает доступ к POP (есть зарегистрированный ящик). Какой почтовый клиент у вас при этом роли не играет.

А приведенный код и занимается подготовкой файла .eml, который надо открыть в почтовом клиенте чтобы отправить его. Для того же чтобы запустить почтового клиента (программу) с передачей ему этого файла как параметра у JS под веб страницей нет прав.
Ответить с цитированием
  #5 (permalink)  
Старый 12.08.2017, 17:38
Аспирант
Отправить личное сообщение для Sayler91 Посмотреть профиль Найти все сообщения от Sayler91
 
Регистрация: 04.03.2017
Сообщений: 90

Сообщение от laimas Посмотреть сообщение
Вам чего надо - отправить письмо? Значит отправляйте обычную форму в полях которой помещайте все что нужно. А отправление, это отправка по протоколу mailto. Отправление будет только в том случае, если ваш интернет провайдер дает доступ к POP (есть зарегистрированный ящик). Какой почтовый клиент у вас при этом роли не играет.
Нажав на скрипт должно создаваться письмо с текстом с данных странички. Отправлять же будет сам пользователь. Вариант с моим кодом выше мне не подходит. Помогите создать код создающий форму письма.
Ответить с цитированием
  #6 (permalink)  
Старый 12.08.2017, 18:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sayler91
И почему то не видится русский текст.
Потому, что не указывается кодировка, укажите. Следует также учесть, что кодировка задается для тела письма и не влияет на его тему (emailsubject), которую кодируют.

Сообщение от Sayler91
сразу создавалось окно письма?
Что такое "окно письма"?
Ответить с цитированием
  #7 (permalink)  
Старый 13.08.2017, 16:55
Аспирант
Отправить личное сообщение для Sayler91 Посмотреть профиль Найти все сообщения от Sayler91
 
Регистрация: 04.03.2017
Сообщений: 90

Сообщение от laimas Посмотреть сообщение
<form action="mailto:адрес мыла"> ....
Спасибо за подсказку. Написал такой скрипт, но не могу построить таблицу с рамками, формат не воспринимается. Подскажите пожалуйста.

<!DOCTYPE html>
<html>
<table>
<tbody><tr>
                        <th>Фамилие</th>
                        <td colspan="2" style="width: 300px;">
                            <span id="lastname" xmlpathvalue="">Иванович</span>
                            &nbsp;</td>
                    </tr>
                    <tr>
                        <th>Имя</th>
                        <td colspan="2" style="width: 300px;">
                            <span id="firstname" xmlpathvalue="">Иван</span>
                            &nbsp;</td>
                    </tr>
                    <tr>
                        <th><span id="number">Телефон</span></th>
                        <td>
                            <span id="DataChangeNumber" xmlpathvalue="Number">123456789</span>
                        </td>
                    </tr>
 </tbody></table>

<script>
var email = 'abc@mail.com';
var a1 = document.getElementById('lastname').innerText;
var a2 = document.getElementById('firstname').innerText;
var a3 = document.getElementById('number').innerText;
var tableObj = document.createElement('table');

tableObj.style.width = '100%';

var tableHTML = '<tr><td>' + a1 + '</td><td>' + a2 + '</td><td>' + a3 + '</td></tr>';

tableObj.innerHTML = tableHTML;
document.body.appendChild(tableObj);

var link = 'mailto:' + email + '?subject=Tema '
             +'&body='+ document.body.appendChild(tableObj);
    window.location.href = link;
</script>
</body></html>
Ответить с цитированием
  #8 (permalink)  
Старый 13.08.2017, 17:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

По протоколу можно mailto отправить только текст, в случае отправки формы этим протоколом enctype ее должен быть text/plain. То есть, вы не можете указать ни в ссылке с протоколом mailto, ни в форме таким протоколом, что тело сообщения отправляется как text/html, чего вы пытаетесь сделать.
Ответить с цитированием
  #9 (permalink)  
Старый 13.08.2017, 18:06
Аспирант
Отправить личное сообщение для Sayler91 Посмотреть профиль Найти все сообщения от Sayler91
 
Регистрация: 04.03.2017
Сообщений: 90

А есть другие способы создать форму письма, кроме mailto и создания файла .eml ?
Ответить с цитированием
  #10 (permalink)  
Старый 13.08.2017, 18:22
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Sayler91
А есть другие способы создать форму письма
Что значит "форма письма"? Мне не известно такое понятие, есть тело почтового сообщения, в том же Outlook можете посмотреть что это такое.

Все остальное относительно почты, это ее отправление. Если у вас задача отправить почту с клиента минуя свой севере (кто и должен в общем-то этим заниматься), то используйте для этого чужой сервер предоставляемый такое API.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отправка формы через ajax на разные email Smike AJAX и COMET 7 12.11.2014 08:58
Почему не отправляются письма c VPS? (Немного общий вопрос) Urukhay Общие вопросы Javascript 1 22.10.2014 01:36
Значение переменной через запятую DDSSDD Серверные языки и технологии 41 16.10.2014 15:01
Отправка через $.post - уже 2-й день мучаюсь! Alexander666 jQuery 4 20.02.2009 16:18
отправка файла через обработчик события submit starrich AJAX и COMET 2 13.08.2008 22:29