一、使用JavaMail API发送简单邮件
JavaMail API提供了一个简单的方法send(),该方法可以用于发送邮件。下面是一个演示如何使用JavaMail API发送简单邮件的示例程序:
import javax.mail.*; import javax.mail.internet.*; public class MailSender { 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 = Session.getDefaultInstance(properties); try { // 创建一个默认的MimeMessage对象 MimeMessage message = new MimeMessage(session); // 设置From:头部标题 message.setFrom(new InternetAddress(from)); // 设置To:头部标题 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 设置标题 message.setSubject("这是邮件标题"); // 设置信息体 message.setText("这是邮件正文"); // 发送消息 Transport.send(message); System.out.println("邮件已经发送。"); } catch (MessagingException mex) { mex.printStackTrace(); } } }
在上面的示例程序中,我们首先为收件人、发件人、SMTP服务器地址设置了变量,并使用System.getProperties()方法获取系统属性,并设置电子邮件服务器的相关参数。接下来,我们使用Session.getDefaultInstance()方法创建了一个与服务器的连接,并使用MimeMessage类创建一个默认的电子邮件对象。然后设置邮件的各个标题和信息体,并使用Transport.send()方法发送邮件。
二、使用JavaMail API发送复杂邮件
JavaMail API还可以用于发送复杂的邮件消息,例如添加附件、HTML格式的消息等。下面是一个演示如何使用JavaMail API发送复杂邮件的示例程序:
import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class MailSenderWithAttachment { 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 = Session.getDefaultInstance(properties); try { // 创建一个默认的MimeMessage对象 MimeMessage message = new MimeMessage(session); // 设置From:头部标题 message.setFrom(new InternetAddress(from)); // 设置To:头部标题 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 设置标题 message.setSubject("这是邮件标题"); // 创建Multipart消息 Multipart multipart = new MimeMultipart(); // 创建一个包含HTML内容的BodyPart BodyPart htmlBodyPart = new MimeBodyPart(); String htmlContent = "这是HTML邮件
这是邮件信息体的文本内容。
"; htmlBodyPart.setContent(htmlContent, "text/html"); // 将HTML内容添加到消息中 multipart.addBodyPart(htmlBodyPart); // 创建一个包含附件的BodyPart BodyPart attachmentBodyPart = new MimeBodyPart(); String filename = "attachment.txt"; attachmentBodyPart.attachFile(filename); // 将附件添加到消息中 multipart.addBodyPart(attachmentBodyPart); // 将整个消息体添加到消息中 message.setContent(multipart); // 发送消息 Transport.send(message); System.out.println("邮件已经发送。"); } catch (MessagingException mex) { mex.printStackTrace(); } catch (java.io.IOException ioex) { ioex.printStackTrace(); } } }
在上面的示例程序中,我们首先为收件人、发件人、SMTP服务器地址设置了变量,并使用System.getProperties()方法获取系统属性,并设置电子邮件服务器的相关参数。接下来,我们使用Session.getDefaultInstance()方法创建了一个与服务器的连接,并使用MimeMessage类创建一个默认的电子邮件对象。然后设置邮件的各个标题和信息体,并使用MimeMultipart类创建一个Multipart消息,并向其中添加一个包含HTML内容的BodyPart和一个包含附件的BodyPart。最后将整个消息体添加到电子邮件对象中,并使用Transport.send()方法发送邮件。
三、使用JavaMail API发送邮件并使用SSL加密
有些SMTP服务器要求使用SSL加密来保护邮件传输中的敏感信息。下面是一个演示如何使用JavaMail API发送邮件并使用SSL加密的示例程序:
import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class MailSenderWithSSL { 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(); // 指定SSL加密 properties.setProperty("mail.smtps.ssl.enable", "true"); // 设置邮件服务器 properties.setProperty("mail.smtps.host", host); // 获取默认的Session对象 Session session = Session.getDefaultInstance(properties); try { // 创建一个默认的MimeMessage对象 MimeMessage message = new MimeMessage(session); // 设置From:头部标题 message.setFrom(new InternetAddress(from)); // 设置To:头部标题 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 设置标题 message.setSubject("这是邮件标题"); // 设置信息体 message.setText("这是邮件正文"); // 发送消息 Transport.send(message); System.out.println("邮件已经发送。"); } catch (MessagingException mex) { mex.printStackTrace(); } } }
在上面的示例程序中,我们首先为收件人、发件人、SMTP服务器地址设置了变量,并使用System.getProperties()方法获取系统属性,并设置SMTP服务器的相关参数。接下来,我们指定了使用SSL加密,并使用Session.getDefaultInstance()方法创建了一个与服务器的安全连接,并使用MimeMessage类创建一个默认的邮件对象。然后设置邮件的各个标题和信息体,并使用Transport.send()方法发送邮件。