Многочастное электронное письмо - PullRequest
5 голосов
/ 12 ноября 2009

Как использовать HTML-теги в составном сообщении электронной почты. Когда я использую <b>, он не распознается как жирный тэг.

Ответы [ 4 ]

11 голосов
/ 12 ноября 2009

Ах, вы используете Java.

Обратите внимание, что, по моему мнению, вы всегда должны устанавливать альтернативу в виде простого текста в письме в формате HTML.

Этот код также позволяет вам встроенные изображения (на которые есть ссылка в HTML с <img src="cid:foo">, но не все почтовые клиенты поддерживают это.

MimeMessage mm = prepareMessage(from, to, subject, cc, bcc);
MimeMultipart mp = new MimeMultipart("alternative");

// Attach Plain Text
MimeBodyPart plain = new MimeBodyPart();
plain.setText(plainText);
mp.addBodyPart(plain);

/*
 * Any attached images for the HTML portion of the email need to be encapsulated with
 * the HTML portion within a 'related' MimeMultipart. Hence we create one of these and
 * set it as a bodypart for the overall message.
 */
MimeMultipart htmlmp = new MimeMultipart("related");
MimeBodyPart htmlbp = new MimeBodyPart();
htmlbp.setContent(htmlmp);
mp.addBodyPart(htmlbp);

// Attach HTML Text
MimeBodyPart html = new MimeBodyPart();
html.setContent(htmlText, "text/html");
htmlmp.addBodyPart(html);

// Attach template images (EmailImage is a simple class that holds image data)
for (EmailImage ei : template.getImages()) {
    MimeBodyPart img = new MimeBodyPart();
    img.setContentID(ei.getFilename());
    img.setFileName(ei.getFilename());
    ByteArrayDataSource bads = new ByteArrayDataSource(ei.getImageData(), ei.getMimeType());
    img.setDataHandler(new DataHandler(bads));
    htmlmp.addBodyPart(img);
}

mm.setContent(mp);
1 голос
/ 12 ноября 2009

какой язык программирования вы используете для отправки электронной почты.

На любом языке должна быть опция, например "IsBodyHtml". Чтобы сделать «Правда» этой проверки. Как код .NET

System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage (); mm.IsBodyHtml = true;

Так что письмо будет отправлено в виде HTML-текста.

1 голос
/ 12 ноября 2009

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

Распознаются ли другие теги html? например. <p>, <a>? Если да, то вы пытались использовать тег <strong> вместо <b>?

Проверьте источник сообщения в программе чтения электронной почты. Возможно, символы «<» или «>» были экранированы как «& lt;» или '& gt;' до его отправки.

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

Попробуйте использовать CSS для изменения веса шрифта:

.important-text { font-weight: bold; }

<span class=".important-text">Super important text</span>
1 голос
/ 12 ноября 2009

Вы устанавливаете Mime типа контента для text / html в этой части сообщения электронной почты?

В качестве альтернативы вы просматриваете с помощью Outlook - программа просмотра Outlook использует Word для всех вещей для рендеринга HTML вместо использования механизма рендеринга IE, как любой разумный дизайн. Это означает, что значительное форматирование может быть потеряно.

Или попробуйте другой шрифт. Пара шрифтов не определяет смелые варианты. Это длинный путь, хотя большинство методов рендеринга шрифтов может автоматически выделять жирный шрифт.

...