Я использую библиотеку JavaMail, я хотел бы изменить тело писем, предложений в разных цветах? Как мне это сделать? Моя заявка находится в (Swing/JFrame)Изменение цвета строки JavaMail
ответ
Пример отправки электронной почты в формате HTML: http://www.tutorialspoint.com/java/java_sending_email.htm
Что Baadshah предлагает, добавляет все ваши цвета форматирования внутри содержимого строки, используя HTML-теги.
message.setContent("<h1>This is actual message</h1>",
"text/html");
Вы можете программно построить строку, содержащую сообщение тела.
String line1 = "This is the first line in the body. We want it to be blue."
addColor(line1, Color.BLUE);
Затем создайте метод для обработки Расцветки HTML:
public static String addColor(String msg, Color color) {
String hexColor = String.format("#%06X", (0xFFFFFF & color.getRGB()));
String colorMsg = "<FONT COLOR=\"#" + hexColor + "\">" + msg + "</FONT>";
return colorMsg;
}
Вы можете исследовать различные способы раскрашивания в HTML здесь: http://www.htmlgoodies.com/tutorials/colors/article.php/3479011/How-To-Change-Text-Color-Using-HTML-and-CSS.htm. Это включает в себя старые способы сделать это, например, используя FONT (как мой пример выше) или современные способы сделать это с помощью CSS.
Редактировать: ToHexString возвращает шестнадцатеричный код из 8 символов (альфа + красный + синий + зеленый), а HTML только хочет RGB без альфы. Я использовал решение от this link, и настроить SSCCE:
import java.awt.Color;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class EmailTestHTML
{
public static void main(String [] args)
{
// Recipient's email ID needs to be mentioned.
String to = "[email protected]";
// Sender's email ID needs to be mentioned
String from = "[email protected]";
// Assuming you are sending email from localhost
String host = "putYourSMTPHostHere";
// Get system properties
Properties properties = System.getProperties();
// Setup mail server
properties.setProperty("mail.smtp.host", host);
// Get the default Session object.
Session session = Session.getDefaultInstance(properties);
// String with body Text
String bodyText = addColor("This line is red.", Color.RED);
bodyText += "<br>" + addColor("This line is blue.", Color.BLUE);
bodyText += "<br>" + addColor("This line is black.", Color.BLACK);
System.out.println(bodyText);
try{
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage(session);
// Set From: header field of the header.
message.setFrom(new InternetAddress(from));
// Set To: header field of the header.
message.addRecipient(Message.RecipientType.TO,
new InternetAddress(to));
// Set Subject: header field
message.setSubject("This is the Subject Line!");
// Send the actual HTML message, as big as you like
message.setContent(bodyText,
"text/html");
// Send message
Transport.send(message);
System.out.println("Sent message successfully....");
}catch (MessagingException mex) {
mex.printStackTrace();
}
}
public static String addColor(String msg, Color color) {
String hexColor = String.format("#%06X", (0xFFFFFF & color.getRGB()));
String colorMsg = "<FONT COLOR=\"#" + hexColor + "\">" + msg + "</FONT>";
return colorMsg;
}
}
Примечание: В моей среде я должен был установить этот аргумент в конфигурации Run:
-Djava.net.preferIPv4Stack = истинный
Подробнее об этом here.
Его просто css.
Ничего общего с JAVA
. Браузер определяет ваш HTML-контент, который вы отправляете в email
.
Например
<div style="font-size:14px">Dear user</div>
могли бы вы объяснить, потому что я понятия не имею, о CSS и HTML, Спасибо. – vijay
http://www.codecademy.com/ru/tracks/web – Damienknight
Вы должны отправить почту в формате HTML, чтобы иметь возможность изменить цвет текста.
См. JavaMail FAQ.
Для меня это работало безупречно, стоит выстрел:
String htmlText2 = "<font color=red>Jon Targaryen</font>\n";
или если вы хотите использовать шестнадцатеричный цвет:
String htmlText2 = "<font color=#93cff2>Jon Targaryen</font>\n";
Вы можете добавить дополнительные атрибуты, такие как заголовки или Жирный:
String htmlText2 = "<H1><font color=red>Jon Targaryen</font></H1>\n";
String htmlText2 = "<b><H1><font color=red>Jon Targaryen</font></H1></b>\n";
- 1. Изменение цвета расширенного цвета строки строки
- 2. Изменение цвета строки состояния
- 3. Изменение цвета строки таблицы
- 4. Изменение строки цвета
- 5. Изменение цвета цвета в строке строки
- 6. изменение цвета строки в DataGrid
- 7. изменение цвета строки в JTable
- 8. Изменение цвета строки, созданной динамически
- 9. Изменение цвета строки на клик
- 10. C#: изменение цвета строки списка?
- 11. Изменение цвета строки в JTable
- 12. Jquery изменение строки таблицы цвета
- 13. Изменение цвета фона строки DataGridView
- 14. Изменение цвета строки в EPPlus
- 15. Динамическое изменение цвета строки состояния
- 16. Изменение цвета строки таблицы на две строки
- 17. JavaMail: изменение Времени выполнения encodeParameters
- 18. Изменение цвета фона (или только цвета) строки (javafx)
- 19. Изменение цвета цвета строки SSRS 2008 0 ячейка значения
- 20. Изменение цвета дочерней строки списка в android
- 21. Изменение цвета строки состояния в UISearchController
- 22. Изменение цвета строки состояния в Android
- 23. Изменение цвета строки datagridview при условии vb.net
- 24. Android - изменение цвета фона строки ListView
- 25. Изменение цвета строки в списке - MATLAB GUI
- 26. Изменение цвета фона строки сетки в WPF
- 27. Изменение цвета одной строки динамически в datalist
- 28. Изменение цвета фона строки в datagrid
- 29. Slick сетки - изменение цвета для выбранной строки
- 30. Изменение цвета строки в панели контекстного действия
Integer.ToHexString (цвет) показывает ошибку и «colorMsg» вместо форматирования colorMsg, общее предложение печатается в письме « vijay
Извините. Вы хотите Integer.ToHexString (Color.getRGB()) – Damienknight