Java邮件正文换行

在Java中,发送邮件可以使用JavaMail API来实现。当需要设置邮件正文时,可能会遇到需要进行换行的情况。下面将介绍如何在Java中设置邮件正文并实现换行。

1. 使用换行符

可以通过在邮件正文中插入换行符\n来实现换行。每次插入\n都会在该位置插入一个换行符。

示例代码:

String message = "这是第一行\n这是第二行\n这是第三行";

上述代码中,每个\n都表示一个换行符,因此邮件正文中的文本会在每个\n的位置进行换行。

2. 使用HTML标签

另一种实现方式是使用HTML标签来进行换行。在邮件正文中插入<br>标签可以实现换行效果。

示例代码:

String message = "这是第一行<br>这是第二行<br>这是第三行";

上述代码中,在每行的结尾处使用<br>标签,邮件正文会根据标签换行。

3. 使用CSS样式

如果需要更加灵活地控制换行的方式,可以使用CSS样式。通过设置style属性的white-space属性为pre-wrap,可以实现保留原始换行和添加额外换行。

示例代码:

String message = "<html><body style='white-space:pre-wrap;'>这是第一行\n这是第二行\n这是第三行</body></html>";

上述代码中,在邮件正文中使用HTML标签包裹,并设置<body>标签的style属性为white-space:pre-wrap;,邮件正文会根据样式进行换行。

4. 示例代码

下面是一个完整的示例代码,展示如何使用JavaMail API发送带换行的邮件:

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

public class EmailSender {
    public static void main(String[] args) {
        // 设置邮件服务器
        String host = "smtp.example.com";
        String username = "yourusername";
        String password = "yourpassword";
        
        // 设置收件人和发件人
        String to = "recipient@example.com";
        String from = "sender@example.com";
        
        // 设置邮件内容
        String subject = "邮件主题";
        String messageText = "这是第一行\n这是第二行\n这是第三行";
        
        try {
            // 设置SMTP服务器配置
            Properties props = new Properties();
            props.put("mail.smtp.host", host);
            props.put("mail.smtp.auth", "true");
            
            // 创建会话
            Session session = Session.getDefaultInstance(props, new Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(username, password);
                }
            });
            
            // 创建邮件消息
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
            message.setSubject(subject);
            
            // 设置邮件正文
            message.setText(messageText);
            
            // 发送邮件
            Transport.send(message);
            
            System.out.println("邮件已发送");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

上述代码中,通过message.setText(messageText)方法设置邮件正文内容。

5. 结论

以上是在Java中设置邮件正文并实现换行的几种方式。可以根据需求选择适合的方式来实现邮件正文的换行效果。