java实现发送接收邮件的功能
时间: 2023-07-30 22:04:42 浏览: 112
java实现发送邮件功能
Java可以通过使用JavaMail API来实现发送和接收邮件的功能。下面是一个简单的Java程序示例,演示如何使用JavaMail API发送邮件:
```java
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class SendMail {
public static void main(String[] args) {
final String username = "your_email_address@gmail.com";
final String password = "your_email_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("from_email_address@gmail.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("to_email_address@gmail.com"));
message.setSubject("Testing JavaMail API");
message.setText("Dear Mail Crawler,"
+ "\n\n Please do not spam my email!");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
```
这个程序使用Gmail SMTP服务器发送电子邮件。您需要将您的Gmail电子邮件地址和密码替换为程序中的“your_email_address”和“your_email_password”。您还需要将发件人和收件人的电子邮件地址替换为程序中的“from_email_address”和“to_email_address”。
要接收邮件,您需要使用JavaMail API中的IMAP或POP3协议。这里是一个简单的Java程序示例,演示如何使用JavaMail API接收邮件:
```java
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class ReceiveMail {
public static void main(String[] args) throws Exception {
Properties props = new Properties();
props.setProperty("mail.store.protocol", "imaps");
props.setProperty("mail.imaps.host", "imap.gmail.com");
props.setProperty("mail.imaps.port", "993");
props.setProperty("mail.imaps.ssl.enable", "true");
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imaps");
store.connect("your_email_address@gmail.com", "your_email_password");
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
Message[] messages = inbox.getMessages();
for (int i = 0; i < messages.length; i++) {
System.out.println("Subject: " + messages[i].getSubject());
System.out.println("From: " + messages[i].getFrom()[0]);
System.out.println("Text: " + messages[i].getContent().toString());
}
inbox.close(false);
store.close();
}
}
```
这个程序使用IMAP协议从Gmail收取邮件。您需要将您的Gmail电子邮件地址和密码替换为程序中的“your_email_address”和“your_email_password”。这个程序只是简单地打印收件箱中的邮件主题,发件人和正文。
需要注意的是,如果您使用的是Gmail帐户,请确保已启用“IMAP访问”和“安全性较低的应用程序访问”选项。
阅读全文