mailвставить ссылку как тело

Я пытаюсь вставить ссылку в тело письма:

string.Format("mailto:[email protected]?subject{0}&body{1}", "Тема сообщения", "Http://hostname/default.aspx?id={0000000-00000-0000-00000000000) &язык=ru");

Моя проблема в том, что ссылка останавливается перед { и полная ссылка не активна.

Я пытался заменить { на %7B и } на %7D, но это не работает. Есть ли у вас какие-либо идеи о том, как реализовать такой URL?

Спасибо


person fix105    schedule 29.11.2012    source источник
comment
Является ли BodyFormat HTML? msdn.microsoft.com/en-us/ библиотека/   -  person Ta01    schedule 29.11.2012
comment
Я пробовал с Request.Url.AbsoluteURI. Полный URL-адрес правильно определен в исходном коде (подтверждено с помощью View source), но когда я нажимаю на ссылку, URL-адрес неправильно отображается в теле сообщения Outlook.   -  person fix105    schedule 29.11.2012
comment
Я использую mailto, чтобы открыть электронную почту моего клиента. Я не хочу отправлять письмо напрямую. Как мы можем определить формат почты с помощью ‹a href=mailto:[email protected] ..... ?   -  person fix105    schedule 29.11.2012
comment
Значит, вы не программно генерируете электронное письмо? У вас есть гиперссылка, при нажатии на которую открывается любой почтовый клиент, который есть у пользователя?   -  person Ta01    schedule 29.11.2012
comment
В вашем примере закрывающая скобка GUID не фигурная. Это опечатка?   -  person Artemix    schedule 29.11.2012
comment
Скобка GUID действительно является опечаткой.   -  person fix105    schedule 29.11.2012
comment
Моя цель действительно состоит в том, чтобы щелкнуть ссылку и открыть клиентскую электронную почту пользователя, чтобы вставить ссылку на текущую страницу. Он поделится страницей с другим пользователем. Читатель сможет сам выбрать ТО   -  person fix105    schedule 29.11.2012


Ответы (1)


Попробуйте использовать в качестве тела следующее (например, замените специальные символы шестнадцатеричными кодами — см. http://www.ascii-code.com/ для справки)

Http://hostname/default.aspx%3Fid=%7B0000000-00000-0000-00000000000%7D%26language=en

Вы упомянули, что пробовали это со скобками, но делали ли вы также амперсанд и вопросительный знак?

пс. вам также не хватает знаков равенства в вашем коде. Полный код должен быть:

string.Format("mailto:[email protected]?subject={0}&body={1}", "Subject Message", "Http://hostname/default.aspx%3Fid=%7B0000000-00000-0000-00000000000%7D%26language=en");

Пример автономного HTML:

<html>
    <body>
        <a href="mailto:[email protected]?subject=test&body=http://hostname/default.aspx%3Fid=%7B0000000-00000-0000-00000000000%7D%26language=en">test</a>
    </body>
</html>
person JohnLBevan    schedule 29.11.2012
comment
Действительно, я забыл ? а также &. После замены этих символов он все еще не работает. Ссылка, по которой можно щелкнуть, останавливается после id= и непосредственно перед { - person fix105; 29.11.2012
comment
Я предполагаю, что код С# отправляет свой вывод на веб-страницу, откуда вы щелкаете ссылку. Если вы просматриваете источник сгенерированной веб-страницы, это ссылка, как вы и ожидали (т.е. чтобы проследить, есть ли ошибка где-то в генерации контента) - как вышеописанное работает для меня, если я создаю статическую HTML-страницу и нажимаю кнопку ссылка (открытие с Outlook 2010 в качестве клиента по умолчанию). - person JohnLBevan; 29.11.2012
comment
Ааа - на самом деле я только что понял, что вы имеете в виду - вы получаете полный текст, просто только первая часть текста преобразована в гиперссылку - я неправильно понял - сейчас исследую. - person JohnLBevan; 29.11.2012
comment
Вы пробовали заменить %7B0000000-00000-0000-00000000000%7D на %257B0000000-00000-0000-00000000000%257D? См. blooberry.com/indexdot/html/topics/urlencoding.htm#whatwhy. - person JohnLBevan; 29.11.2012
comment
Я не вижу разницы. Должен ли я видеть %257 в своем HTML-коде? Потому что я вижу только %7b и %7d. И сделал рефреш, чистку кеша. Нет никаких изменений. - person fix105; 29.11.2012
comment
Идея состоит в том, что при записи на HTML-страницу %257B записывается как есть. При нажатии на ссылку это разрешается в %7B в URL-адресе (вместо {), и, таким образом, ссылка не заканчивается на {, а идет до конца. Когда вы затем щелкнете по этому URL-адресу, веб-сервер должен интерпретировать %7B точно так же, как {. . . Я думаю. - person JohnLBevan; 29.11.2012