如何在java电子邮件类中发送html标记?

如何在java电子邮件类中发送html标记?,java,Java,我想将下面提到的结果发送到电子邮件,并希望在电子邮件中仔细接收它们。因此,我决定使用html代码,但没有结果 caputure.png图像 代码: 公共静态void sendresult(ShowResultModel showuserresulttable){ 最终字符串用户名=***** 最终字符串密码=*****; Properties props=新属性(); props.put(“mail.smtp.auth”,“true”); props.put(“mail.smtp.starttl

我想将下面提到的结果发送到电子邮件,并希望在电子邮件中仔细接收它们。因此,我决定使用html代码,但没有结果

caputure.png图像

代码:

公共静态void sendresult(ShowResultModel showuserresulttable){

最终字符串用户名=*****
最终字符串密码=*****;
Properties props=新属性();
props.put(“mail.smtp.auth”,“true”);
props.put(“mail.smtp.starttls.enable”、“true”);
put(“mail.smtp.host”、“smtp.gmail.com”);
props.put(“mail.smtp.port”,“587”);
会话=会话.getInstance(props,
新的javax.mail.Authenticator(){
受保护的密码身份验证getPasswordAuthentication(){
返回新密码身份验证(用户名、密码);
}
});
试一试{
Message Message=新的mimessage(会话);
message.setFrom(新的InternetAddress(“mekteb48@gmail.com"));
message.setRecipients(message.RecipientType.TO,
InternetAddress.parse(“iismayilov028@gmail.com"));
message.setSubject(“Exammer结果:+showuserresulttable.getUsername());
DecimalFormat formatter=新的DecimalFormat(“0.00”);
字符串消息=”;
double-resultpercent=showuserresulttable.getScore()/(double)showuserresulttable.getTotalanswer()*100;
消息+=“用户名:”+showUserResultable.getUsername()+“

”; 消息+=“Subject”+showUserResultable.getSubject()+“

”; 消息+=“变量:”+showUserResultable.getVariant()+“

”; 消息+=“结果分数:”+showuserresulttable.getScore()+“

”; 消息+=“总问题:”+showUserResultable.getTotalanswer()+“

”; 消息+=“得分百分比:”+resultpercent+“

”; 消息+=“Spendtime:”+ShowUserResultable.getSpendtime()+“第二个”+“

”; 消息+=“Examdate:+ShowUserResultable.getExamdate(); message.setText(message); 传输。发送(消息); System.out.println(“Mail gonderildi!”); }捕获(消息异常e){ 抛出新的运行时异常(e); } }
而不是
message.setText(message)
应该使用
message.setText(message,true)
此处true
表示
html
(是否使用默认内容类型(“text/plain”)为html邮件应用内容类型“text/html”)


另外,如果您使用的是thymeleaf或freemarker,那么您可以在那里使用模板。

而不是
message.setText(message)
应该使用
message.setText(message,true)
此处true
表示
html
(是否使用默认内容类型(“text/plain”)为html邮件应用内容类型“text/html”)


另外,如果您使用的是thymeleaf或freemarker,那么您可以在那里使用模板。

可能重复的可能重复的可能重复的可能重复的我尝试您的建议,但当我在类中写true时,我得到红色下划线错误,“部分设置文本字符串无法应用”,怎么办?您使用spring javacv邮件依赖项还是其他?我不使用spring。我用ide intellejis编码,导入了下面提到的JAR:import java.text.DecimalFormat;导入java.util.List;导入java.util.Properties;导入javax.mail.Message;导入javax.mail.MessaginException;导入javax.mail.PasswordAuthentication;导入javax.mail.Session;导入javax.mail.Transport;导入javax.mail.internet.InternetAddress;导入javax.mail.internet.mimessage;请加上这一行message.setContent(message,“text/html;charset=utf-8”);'另外,请删除message.setText(message):;行请加上这行message.setContent(message,“text/html;charset=utf-8”);'另外,请删除message.setText(message):;Line我试着给出你的建议,但当我在课堂上写true时,我得到了红色下划线错误,“部分设置文本字符串无法应用”,怎么办?你使用spring javacv邮件依赖还是其他?我不使用spring。我用ide intellejis编码,导入了下面提到的JAR:import java.text.DecimalFormat;导入java.util.List;导入java.util.Properties;导入javax.mail.Message;导入javax.mail.MessaginException;导入javax.mail.PasswordAuthentication;导入javax.mail.Session;导入javax.mail.Transport;导入javax.mail.internet.InternetAddress;导入javax.mail.internet.mimessage;请加上这一行message.setContent(message,“text/html;charset=utf-8”);'另外,请删除message.setText(message):;行请加上这行message.setContent(message,“text/html;charset=utf-8”);'另外,请删除message.setText(message):;线
    final String username = *****
    final String password = ******;

    Properties props = new Properties();
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");

    Session session = Session.getInstance(props,
            new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(username, password);
                }
            });

    try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("mekteb48@gmail.com"));
        message.setRecipients(Message.RecipientType.TO,
                InternetAddress.parse("iismayilov028@gmail.com"));

        message.setSubject("Exammer result :" + showuserresulttable.getUsername() );

        DecimalFormat formatter = new DecimalFormat("#0.00");

         String MESSAGE = " ";
        double resultpercent  =  showuserresulttable.getScore() /(double) showuserresulttable.getTotalanswer()*100;

        MESSAGE+="<b>Username:</b> " + showuserresulttable.getUsername() + "<br><hr>";
        MESSAGE+="<b>Subject</b>" + showuserresulttable.getSubject() + "<br><hr>";
        MESSAGE+="<b>Variant :</b>" + showuserresulttable.getVariant() +   "<br><hr>";
        MESSAGE+="<b>Score of result:</b>" + showuserresulttable.getScore() + "<br><hr>";
        MESSAGE+="<b>Total question :</b>" + showuserresulttable.getTotalanswer()+ "<br><hr>";
        MESSAGE+="<b> Score percent:</b>" + resultpercent + "<br><hr>";
        MESSAGE+="<b>Spendtime:</b>" + showuserresulttable.getSpendtime() + "second" + "<br><hr>";
        MESSAGE+="<b>Examdate:</b>" + showuserresulttable.getExamdate() ;

        message.setText(MESSAGE);
        Transport.send(message);

        System.out.println("Mail gonderildi!");
    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }

}