Сообщение электронной почты, состоящее из нескольких частей

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


person Harish    schedule 12.11.2009    source источник


Ответы (4)


Ах, вы используете 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);
person JeeBee    schedule 12.11.2009

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

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

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

person JeeBee    schedule 12.11.2009

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

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

System.Net.Mail.MailMessage мм = новый System.Net.Mail.MailMessage(); мм.IsBodyHtml = истина;

Таким образом, почта будет идти в виде html-текста.

person Deepak    schedule 12.11.2009

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

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

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

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

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

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

<span class=".important-text">Super important text</span>
person Liam    schedule 12.11.2009