要使用Java应用程序发送电子邮件非常简单,但首先应该在计算机上安装JavaMail API和Java Activation Framework(JAF)。
您可以下载最新版本 JavaMail (Version 1.2)
您可以下载最新版本 JAF (Version 1.1.1)
下载并解压缩这些文件,在新创建的顶级目录中,您将发现这两个应用程序的许多JAR文件。您需要在CLASSPATH中添加mail.jar和activation.jar文件。
下面是一个从您的机器发送简单电子邮件的示例。假设您的本地主机已连接到互联网,并且足以发送电子邮件。
//File Name SendEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendEmail { public static void main(String [] args) { //需要提及收件人的电子邮件 ID。 String to="abcd@gmail.com"; //需要提及发件人的电子邮件 ID String from="web@gmail.com"; //假设从 localhost 发送电子邮件 String host="localhost"; //获取系统属性 Properties properties=System.getProperties(); //设置邮件服务器 properties.setProperty("mail.smtp.host", host); //获取默认的 Session 对象。 Session session=Session.getDefaultInstance(properties); try { //创建一个默认的 MimeMessage 对象。 MimeMessage message=new MimeMessage(session); //Set From: 从哪里发送 message.setFrom(new InternetAddress(from)); //Set To:发送到哪去。 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); //Set Subject: header field 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(); } } }
编译并运行此程序以发送简单的电子邮件-
$java SendEmail Sent message successfully....
如果要将一封电子邮件发送给多个收件人,则可以使用以下方法指定多个电子邮件ID-
void addRecipients(Message.RecipientType type, Address[] addresses) throws MessagingException
下面是一个从您的机器发送HTML电子邮件的示例,这里假设您的本地主机已连接到互联网,并且足以发送电子邮件。
此示例与上一个示例非常相似,除了这里无涯教程使用setConten()方法设置第二个参数为“ text/html”的内容以指定HTML内容包含在消息中。
使用本例,您可以发送您喜欢的HTML内容。
//File Name SendHTMLEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendHTMLEmail { public static void main(String [] args) { //需要提及收件人的电子邮件 ID。 String to="abcd@gmail.com"; //需要提及发件人的电子邮件 ID String from="web@gmail.com"; //假设您从 localhost 发送电子邮件 String host="localhost"; //获取系统属性 Properties properties=System.getProperties(); //设置邮件服务器 properties.setProperty("mail.smtp.host", host); //获取默认的 Session 对象。 Session session=Session.getDefaultInstance(properties); try { //创建一个默认的 MimeMessage 对象。 MimeMessage message=new MimeMessage(session); //Set From: header field of the header. message.setFrom(new InternetAddress(from)); //Set To: header field of the header. message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); //Set Subject: header field message.setSubject("This is the Subject Line!"); //发送实际的 HTML 消息 message.setContent("<h1>This is actual message</h1>", "text/html"); //发信息 Transport.send(message); System.out.println("Sent message successfully...."); } catch (MessagingException mex) { mex.printStackTrace(); } } }
编译并运行此程序以发送html电子邮件-
$java SendHTMLEmail Sent message successfully....
下面是一个从您的机器发送带有附件的电子邮件的示例。
链接:https://www.learnfk.comhttps://www.learnfk.com/java/java-sending-email.html
来源:LearnFk无涯教程网
//File Name SendFileEmail.java import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class SendFileEmail { public static void main(String [] args) { //需要提及收件人的电子邮件 ID。 String to="abcd@gmail.com"; //需要提及发件人的电子邮件 ID String from="web@gmail.com"; //假设您从 localhost 发送电子邮件 String host="localhost"; //获取系统属性 Properties properties=System.getProperties(); //设置邮件服务器 properties.setProperty("mail.smtp.host", host); //获取默认的 Session 对象。 Session session=Session.getDefaultInstance(properties); try { //创建一个默认的 MimeMessage 对象。 MimeMessage message=new MimeMessage(session); //Set From: header field of the header. message.setFrom(new InternetAddress(from)); //Set To: header field of the header. message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); //Set Subject: header field message.setSubject("This is the Subject Line!"); //创建消息部分 BodyPart messageBodyPart=new MimeBodyPart(); //填写内容信息 messageBodyPart.setText("This is message body"); //创建多条消息 Multipart multipart=new MimeMultipart(); //设置部分 multipart.addBodyPart(messageBodyPart); //第二部分是附件 messageBodyPart=new MimeBodyPart(); String filename="file.txt"; DataSource source=new FileDataSource(filename); messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); //发送完整的消息部件 message.setContent(multipart ); //发信息 Transport.send(message); System.out.println("Sent message successfully...."); } catch (MessagingException mex) { mex.printStackTrace(); } } }
编译并运行此程序以发送html电子邮件-
$java SendFileEmail Sent message successfully....
如果需要向电子邮件服务器提供用户ID和密码以进行身份验证,则可以按如下方式设置这些属性:-
props.setProperty("mail.user", "myuser"); props.setProperty("mail.password", "mypwd");
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)