mailto ссылка с телом HTML
У меня есть несколько ссылок mailto в HTML-документе.
Могу ли я вставить тело в формате HTML в mailto: часть href ?
[email protected]?subject=Me&body=ME">Mail me
Обратите внимание, что (2016) в iOS совершенно нормально добавлять теги и для простого курсивного и полужирного форматирования.
ОТВЕТЫ
Ответ 1
Как вы можете видеть в RFC 6068, это вообще невозможно:
Специальный «body» указывает, что связанный является телом сообщения. Значение поля «тело» предназначено для содержат контент для первой части текста/простой части сообщение. Поле псевдополя «body» предназначено в первую очередь для генерация коротких текстовых сообщений для автоматической обработки (таких как «подписаться» для списков рассылки), а не для общего MIME тел.
Ответ 2
Нет. Это невозможно вообще.
Ответ 3
В то время как HTML-формат не может использоваться для форматирования вашего тела электронной почты, вы можете добавить разрывы строк, как было предложено ранее.
Если вы можете использовать javascript, тогда «encodeURIComponent()» может быть полезен, как показано ниже.
var formattedBody = "FirstLine \n Second Line \n Third Line"; var mailToLink /cdn-cgi/l/email-protection" data-cfemail="522a122b7c313d3f">[email protected]?body post-104 post type-post status-publish format-standard has-post-thumbnail hentry category-uncategorized"> Ответ 4
Я использовал это и, похоже, работает с Outlook, не используя html, но вы можете форматировать текст с разрывами строк, по крайней мере, когда тело добавляется в качестве вывода.
[email protected]?subject=Hello world&body=Line one%0DLine two">Email me
Ответ 5
Это не совсем то, что вы хотите, но с помощью современного javascript можно создать файл EML на клиенте и передать его в файловую систему пользователя, которая должна открыть в почтовой программе богатое письмо, содержащее HTML, например Outlook:
Здесь jsfiddle электронного письма, содержащего изображения и таблицы: https://jsfiddle.net/seanodotcom/yd1n8Lfh/
Download
(function () < var textFile = null, makeTextFile = function (text) < var data = new Blob([text], ); if (textFile !== null) < window.URL.revokeObjectURL(textFile); >textFile = window.URL.createObjectURL(data); return textFile; >; var create = document.getElementById('create'), textbox = document.getElementById('textbox'); create.addEventListener('click', function () < var link = document.getElementById('downloadlink'); link.href = makeTextFile(textbox.value); link.style.display = 'block'; >, false); >)();
Ответ 6
Некоторые вещи возможны, но не все, скажем, например, вы хотите разрывы строк, вместо использования
используйте %0D%0A
Ответ 7
Стоит отметить, что в Safari на iPhone, по крайней мере, вставляются базовые HTML-теги, такие как , и (что в идеале вы больше не должны использовать в других обстоятельствах, предпочтение CSS) в параметр body в mailto: , похоже, работает - они соблюдаются в почтовом клиенте. Я не проводил исчерпывающее тестирование, чтобы убедиться, что это поддерживается другими мобильными или настольными браузерами/почтовыми клиентскими комбо. Это также сомнительно, действительно ли это соответствует стандартам. Может быть полезно, если вы строите для этой платформы.
Как отмечали другие ответы, вы должны также использовать encodeURIComponent для всего тела, прежде чем вставлять его в ссылку mailto: .
Ответ 8
Ответ 9
Любой может попробовать следующее (функция mailto принимает только открытый текст, но здесь я покажу, как использовать свойства внутреннего текста HTML и как добавить привязку в качестве параметров mailto body):
//Create as many html elements you need. const titleElement = document.createElement("DIV"); titleElement.innerHTML = this.shareInformation.title; // Just some string //Here I create an so I can use href property const titleLinkElement = document.createElement("a"); titleLinkElement.href = this.shareInformation.link; // This is a url
let mail = document.createElement("a"); // Using es6 template literals add the html innerText property and anchor element created to mailto body parameter mail.href = 'mailto:?subject=$&body=$%0D%0A$'; mail.click(); // Notice how I use $ that is an anchor element, so mailto uses its href and renders the url I needed
Ответ 10
Можно ввести значения \u0009 для вставки \u0009 строк (например: \u0009 ), но теги HTML имеют различную степень поддержки и их следует избегать.
Ответ 11
var newLine = escape("\n"); var body = "Hello" + newLine +"World";
Javascript mailto body html
Transform your HTML forms in beautiful mailto: links, form submission or XHR requests.
It basically uses your HTML forms, like this one:
fieldset> legend>Talk Proposallegend> form method="POST" action="mailto:organisers@event.com"> label> Your name: input type="text" name="username"> label> label> Your email: input type="email" name="from"> label> label> Talk Title: input type="text" name="title"> label> label> Talk Format: select name="format"> option>/option> option>Lightning Talkoption> option>Keynoteoption> option>Workshopoption> select> label> label> Talk Description: textarea name="description">/textarea> label> input type="submit" value="Send Proposal"> form>fieldset>
And it helps you to outputs that for various needs, such as a nice and properly formatted text, ready to use:
Dear organiser,
I am John Doe and I propose you a topic entitled Lightning Talk entitled Low-tech HTML forms without server component.
Here is what I have to say about it:
This is better than every social media marketing e-reputation blogware software in the cloud. Convinced? Are you a VC? Worth 20 millions, at least.
You can address me an email at john@doe.co.uk or by replying to this email.
Also, you can generate a mailto: link to let any user send the content for the form in a nice way without any server side component.
Then include it in your pages or bake it through your build system:
script src="https://rawgithub.com/oncletom/mailto/dist/mailto.min.js">/script>script>// Vanilla JSvar m = new Mailto(…); // Using RequireJSrequire(['mailto'], function(mailto) var m = new Mailto(…);>); // Using CommonJS module loader (browser and Node.js)var mailto = require('mailto');var m = new Mailto(…);script>
Simple posting with mailto:
var m = new mailto('form[action^="mailto:"]', onSubmit: mailto.sendForm>);
Notice: not yet implemented.
Posting with mailto: and a custom layout
The formatter will help you to format the form values with your own logic.
var templateSource = document.querySelector('#email-template').innerHTML;var template = handlebars.compile(templateSource); var m = new mailto('form[action^="mailto:"]', formatter: function(m) return template(m.getData()); >>);
var m = new mailto('form[action^="mailto:"]', onSubmit: function(m) $.post('/contact', type: 'json' >, m.getData()); >>);
Preview as plain text before sending
var form = document.querySelector('.mailto-form');var m = new mailto(form);var previewButton = form.querySelector('.preview-button');var previewContainer = form.querySelector('+ .preview-container'); previewButton.addEventListener('click', function() previewContainer.innerHTML = m.getBody(); previewContainer.hidden = false; form.hidden = true;>);
Update a fallback on form update
var form = document.querySelector('.mailto-form');var m = new mailto(form);var emailLink = form.querySelector('.email-link-fallback'); form.addEventListener('change', function() emailLink.href = m.getmailtoUrl();>);
All options are optional and set up with usable defaults. Change them accordingly to your needs.
Boolean indicating if mailto should prevent the form to be submitted.
// the form `submit` event will be fired, whatever `mailto` does.var m = new mailto('.mailto-form', preventDefault: false >);
Function used to generate a human readable representation of the form. It is used by mailto.getBody() .
Its first and only argument is the actual mailto instance bound to the form.
// the form `submit` event will be fired, whatever `mailto` does.var m = new mailto('.mailto-form', formatter: return jsonEncoder(m) return JSON.stringify(m.getData()); >>);
Function used when the HTML triggers a submit event. This is the best way to hook custom processing.
Its first and only argument is the actual mailto instance bound to the form.
// the form `submit` event will be fired, whatever `mailto` does.var m = new mailto('.mailto-form', onSubmit: return submitDebugger(m) console.log(m.getMailtoLink); >>);
Returns a new mailto instance configured with the options described above.
var m = new mailto('.mailto-form'); // play and use any of the other documented API methods
Returns a serialised representation of the form values as a key/value object. Suitable for XHR requests.
var m = new mailto('.mailto-form'); m.getData();// ->
Returns a human readable formatted form content.
By changing the formatter option, you can alter the output of this function.
var m = new mailto('.mailto-form'); m.getBody();// -> Name: John Doe// -> Message: Can I has cheeseburger?
Returns an expanded array of form values, included labels and field names.
var m = new mailto('.mailto-form'); m.getFormData();// -> [// -> < name: 'from', value: 'John Doe', label: 'Name' >,// -> < name: 'message', value: 'Can I has cheesburger?', label: 'Message' >,// -> ]
Returns an URL encoded string suitable for a clickable a[href] or form[target] attribute.
var m = new mailto('.mailto-form'); m.getMailtoUrl();// -> mailto:test@example.com?body: m.getMailtoUrl('someone@else.com');// -> mailto:someone@else.com?body:
One rule only: respect the code. For the rest, bring your ideas, raise issues and push code 🙂
The MIT License (MIT)
Copyright (c) 2013, Thomas Parisot
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Javascript mailto body html
Answered by:
Question
User1626252724 posted
Hello, I am trying to create a link that will send a message like that ?body=Ajay "> its not working. please help me regarding that thanks in advance dhemittal@gmail.com
Answers
All replies
User1626252724 posted
I have tried this link. but its not giving the solution for that kind of html tag. like Your name actually i have to pass well formatted body in mailto: thanks in advance dhemittal@gmail.com
User863018716 posted
Hello If you want to send a mail to a user.Then best way is to use System.net.mail of asp.net.You can use Mailing functionality as follows: objclsGeneral.From = new MailAddress(Config.MailFrom);
objclsGeneral.To = new MailAddress(email);
objclsGeneral.Mail = new MailMessage(objclsGeneral.From, objclsGeneral.To);
objclsGeneral.Mail.Subject = sSubject;
objclsGeneral.Mail.Body = body;
objclsGeneral.Mail.IsBodyHtml = true;
objclsGeneral.Mail.Sender = objclsGeneral.From;
objclsGeneral.SendMail();
objclsGeneral.Mail.IsBodyHtml = true; By this you can send a mail in html format. Try this out.
Dev centers
Learning resources
Community
Support
Programs
© 2023 Microsoft