MimeMessage fordward = new MimeMessage(this.session); fordward.setFrom((Address)new InternetAddress(this.username)); System.out.println("发件人:" + this.username); fordward.setSubject(subject); System.out.println("收件人邮箱:" + receiveAddress); fordward.setRecipients(Message.RecipientType.TO, (Address[])InternetAddress.parse(receiveAddress)); System.out.println("收件人邮箱:" + receiveAddress); MimeMultipart mimeMultipart = new MimeMultipart(); MimeBodyPart mbp = new MimeBodyPart(); String str1=getBodyText().substring(0, getBodyText().indexOf("Dear")); String text=getBodyText().substring(str1.length(), getBodyText().length()); /* mbp.setContent( getBodyText(), "text/html;charset=utf-8");*/ mbp.setContent( text, "text/html;charset=utf-8"); System.out.println("邮件内容:" + text); mimeMultipart.addBodyPart((BodyPart)mbp); fordward.setContent((Multipart)mimeMultipart); fordward.setSentDate(new Date()); fordward.saveChanges(); trans.sendMessage((Message)fordward, fordward.getAllRecipients()); 怎么判断邮件是否成功发送给对方
时间: 2023-11-27 20:50:09 浏览: 63
您可以通过捕获异常来判断邮件是否成功发送给对方。在发送邮件的代码块中,如果出现异常,说明邮件发送失败;否则,邮件发送成功。以下是一个示例代码:
```java
try {
// 发送邮件的代码块
// ...
System.out.println("邮件发送成功");
} catch (MessagingException e) {
e.printStackTrace();
System.out.println("邮件发送失败");
}
```
相关问题
Exception in thread "main" javax.mail.MessagingException: No MimeMessage content at javax.mail.internet.MimeMessage.getContentStream(MimeMessage.java:1334) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1473) at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1773) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1119) at Main.main(Main.java:51)
这个错误通常是由于MimeMessage对象没有设置消息体导致的。请确保您的MimeMessage对象已经设置了消息体,例如:
```java
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
message.setText(body); // 设置消息体
```
请注意,如果您使用HTML格式的消息体,则应将消息类型设置为"text/html",并且消息内容应该是HTML代码。这里是一个设置HTML消息体的示例:
```java
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
message.setContent(htmlBody, "text/html"); // 设置HTML消息体
```
在这个示例中,“htmlBody”是一个包含HTML代码的字符串。请注意,如果您使用HTML格式的消息体,则应该使用“setContent”方法而不是“setText”方法来设置消息体。
Message message = new MimeMessage(session);的使用方法
这行代码是在 JavaMail API 中创建一个新的 MIME 邮件消息的实例。以下是一个基本的使用方法示例:
```
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class SendEmail {
public static void main(String[] args) {
String to = "recipient@example.com"; // 收件人地址
String from = "sender@example.com"; // 发件人地址
String host = "smtp.example.com"; // SMTP 主机
Properties properties = System.getProperties(); // 获取系统属性
properties.setProperty("mail.smtp.host", host); // 设置邮件服务器
Session session = Session.getDefaultInstance(properties); // 获取默认的 Session 对象
try {
MimeMessage message = new MimeMessage(session); // 创建一个新的 MIME 邮件消息实例
message.setFrom(new InternetAddress(from)); // 设置发件人
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 设置收件人
message.setSubject("This is the Subject Line!"); // 设置主题
message.setText("This is actual message"); // 设置消息内容
Transport.send(message); // 发送消息
System.out.println("Sent message successfully....");
} catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
```
在上面的示例中,我们首先设置了收件人、发件人、SMTP 主机等信息。然后,我们使用 `System.getProperties()` 方法获取系统属性并设置邮件服务器。接下来,我们使用 `Session.getDefaultInstance(properties)` 方法获取默认的 `Session` 对象。
使用 `MimeMessage` 类创建新的 MIME 邮件消息实例,并设置发件人、收件人、主题和正文内容等。最后,我们使用 `Transport.send(message)` 方法发送消息,并在控制台上打印消息发送成功的消息。
阅读全文