Отправка письма через Outlook
Добрый день. Есть страничка html. Как создать письмо с табличкой из 1 строчки и 3 столбцов: Иванович|Иван|123456789, взятых из странички?
<table> <tbody><tr> <th>Фамилие</th> <td colspan="2" style="width: 300px;"> <span id="lastname" xmlpathvalue="">Иванович</span> </td> </tr> <tr> <th>Имя</th> <td colspan="2" style="width: 300px;"> <span id="firstname" xmlpathvalue="">Иван</span> </td> </tr> <tr> <th><span id="number">Телефон</span></th> <td> <span id="DataChangeNumber" xmlpathvalue="Number">123456789</span> </td> </tr> </tbody></table> |
<form action="mailto:адрес мыла"> ....
|
<!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>Нашел вот такой код. Проблема в том что он создает файл, который нужно открывать. Можно сделать без нажатие на открыть, а сразу создавалось окно письма? И почему то не видится русский текст. |
Вам чего надо - отправить письмо? Значит отправляйте обычную форму в полях которой помещайте все что нужно. А отправление, это отправка по протоколу mailto. Отправление будет только в том случае, если ваш интернет провайдер дает доступ к POP (есть зарегистрированный ящик). Какой почтовый клиент у вас при этом роли не играет.
А приведенный код и занимается подготовкой файла .eml, который надо открыть в почтовом клиенте чтобы отправить его. Для того же чтобы запустить почтового клиента (программу) с передачей ему этого файла как параметра у JS под веб страницей нет прав. |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
<!DOCTYPE html> <html> <table> <tbody><tr> <th>Фамилие</th> <td colspan="2" style="width: 300px;"> <span id="lastname" xmlpathvalue="">Иванович</span> </td> </tr> <tr> <th>Имя</th> <td colspan="2" style="width: 300px;"> <span id="firstname" xmlpathvalue="">Иван</span> </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> |
По протоколу можно mailto отправить только текст, в случае отправки формы этим протоколом enctype ее должен быть text/plain. То есть, вы не можете указать ни в ссылке с протоколом mailto, ни в форме таким протоколом, что тело сообщения отправляется как text/html, чего вы пытаетесь сделать.
|
А есть другие способы создать форму письма, кроме mailto и создания файла .eml ?
|
Цитата:
Все остальное относительно почты, это ее отправление. Если у вас задача отправить почту с клиента минуя свой севере (кто и должен в общем-то этим заниматься), то используйте для этого чужой сервер предоставляемый такое API. |
Часовой пояс GMT +3, время: 10:55. |