我正在使用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个字符的十六进制代码(alpha + red + blue + green),而HTML只需要没有alpha的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;
}
}
注: 在我的环境我必须设置这个参数在运行配置:
-Djava.net.preferIPv4Stack =真
更多对here.
它只是css。
与JAVA
无关。浏览器检测到您发送的HTML内容为email
。
例如
<div style="font-size:14px">Dear user</div>
你能解释一下,因为我不知道CSS和HTML的想法,谢谢。 – vijay 2013-04-08 15:26:04
http://www.codecademy.com/en/tracks/web – Damienknight 2015-06-17 19:35:32
你必须发送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. 更改Java中的字符串颜色
- 3. 如何更改字符串的颜色
- 4. 更改字符的颜色
- 5. PHP/CSS在字符串中查找两个颜色字,更改其颜色
- 6. 使用NSAttributed字符串更改字符串的颜色和字体
- 7. 如何更改字符串中1个符号的颜色?
- 8. 更改vb中字符串的字体颜色
- 9. 如何使用JavaScript更改字符串字体颜色
- 10. netbeans 7.2 - 更改EOL字符的颜色
- 11. 更改特定字符的颜色
- 12. 更改JLabel的颜色字符文本?
- 13. 更改某些字符的颜色
- 14. 如何更改unicode字符的颜色
- 15. 更改Eclipse颜色主题时,符号不会更改颜色
- 16. 如何更改光标颜色而不更改文字颜色?
- 17. 将颜色更改为字符串中的奇数单词
- 18. 如何更改撬提示字符串的颜色
- 19. ASP.NET - 更改标签颜色并用字符串浓缩
- 20. 更改Smali语言中字符串的颜色(Android)
- 21. 如何更改插值字符串的颜色?
- 22. 如何更改基于字符串值的datagridview行颜色
- 23. JavaScript不能更改空字符串颜色
- 24. 如何更改我键入的字符串值的颜色?
- 25. Outlook中的字符串颜色更改使用C#添加?
- 26. 在java中更改字符串的颜色
- 27. 更改列表框中的字符串的颜色 - MATLAB GUI
- 28. 更改字符串中的文本颜色?
- 29. 如何更改字符串中特定单词的颜色? vb.net
- 30. 更改绘制的NSString的子字符串的背景颜色?
Integer.ToHexString(color)显示错误和“colorMsg”,而不是格式化colorMsg,总的语句打印在电子邮件“ vijay 2013-04-09 13:40:10
对不起。你想要Integer.ToHexString(Color.getRGB()) – Damienknight 2013-04-09 15:26:59