Отправить письмо в формате HTML asp

Я хочу добавить html в электронное письмо. Я пробовал следующее.

vFromName = "someone"
vFromAddress = "someemail"
vTo = "recipient"
vSubject="someSubject"
vBodyofemail = "<html><table><tr><td><b>SomeText</b></td></tr></table></html>"

Call SendMail()

sub SendMail()
  'change to address of your own SMTP server
  strHost = "mail.internal.rouses.com"
  Set Mail = Server.CreateObject("Persits.MailSender")
  'enter valid SMTP host
  Mail.Host = strHost
  'From eMail address
  Mail.FromName = vFromName
  'From address
  Mail.From = vFromAddress 
  'To eMail address
  Mail.AddAddress vTo
  'message subject
  Mail.Subject = vSubject
  'message body
  Mail.Body = vBodyOfEmail
 Mail.Send
end sub

Как я могу это сделать? Я пробовал Mail.HtmlBody, но это тоже не работает. Электронное письмо отправлено, но все, что я вижу, это теги, в которых находится html.


person Eric    schedule 03.07.2009    source источник
comment
Что не работает? Электронная почта отправляется, и вы видите html, или вы вообще не получаете электронную почту?   -  person C. Ross    schedule 03.07.2009
comment
Электронная почта отправлена. Я просто вижу html-теги... не то, что они должны делать.   -  person Eric    schedule 03.07.2009


Ответы (3)


Согласно этой странице, вам необходимо установить для флага IsHTML значение true. .

strHTML = "Hello world"

Mail.IsHTML = True
Mail.Body = "<HTML><BODY><CENTER>" & strHTML & "</CENTER></BODY></HTML>"
person C. Ross    schedule 03.07.2009
comment
Это сработало. Моя проблема заключалась в том, что эта функция находится в нескольких местах, и та, которую я редактировал, не была вызвана правильной функцией. Спасибо. - person Eric; 03.07.2009
comment
Но как тогда определяется обычный текст (в том же сообщении)? - person Arjan; 03.07.2009
comment
Вы просто поместите это в конец html-строки: & chr(10) & chr(13)& chr(10) & chr(13) _, тогда &plain text будет работать. - person Eric; 03.07.2009
comment
Хм, я сомневаюсь, что несколько новых строк заставят Persits.MailSender сгенерировать границу MIME. Вы действительно проверяли это на нескольких клиентах? Я могу себе представить, что любой текст, добавленный после закрывающего тега ‹/HTML›, не будет отображаться в режиме HTML, но я сомневаюсь, что версия HTML будет скрыта при просмотре сообщения в виде обычного текста... - person Arjan; 04.07.2009

Попробуйте добавить эту строку над вызовом отправки.

Mail.IsHTML = true

Без него объект Mail по умолчанию использует стандартный текст, и все, что вводится в свойство Body, будет отображаться в электронном письме как текст.

person RSolberg    schedule 03.07.2009
comment
Это сработало. Моя проблема заключалась в том, что эта функция находится в нескольких местах, и та, которую я редактировал, не была вызвана правильной функцией. Спасибо. C. Росс ответил на него первым, так что я дам ему ответ. но я поставлю тебе +1 - person Eric; 03.07.2009
comment
Функция, находящаяся в нескольких местах, немного напоминает запах кода :) - person RSolberg; 03.07.2009

Не ответ на ваш вопрос, но разве все сообщения не должны также включать простой текст? Без обычного текста вы наверняка получите более высокий балл за спам.

(И такие люди, как я, предпочитают переключаться на обычный текст, если ваш HTML/CSS не отображается должным образом. См. Руководство по CSS поддержка в почтовых клиентах (2008 г.), а также список в Проекте стандартов электронной почты. )

person Arjan    schedule 03.07.2009
comment
...но тогда как бы вы поместили и обычный текст, и HTML в свойство Mail.Body? Интересно, подходит ли Persits.MailSender? - person Arjan; 03.07.2009