利用javamail发送邮件实例

来源:互联网 发布:阿里云9.9学生机怎么用 编辑:程序博客网 时间:2024/06/06 16:41

最近在学习使用javamail发送邮件

使用javamail发送邮件,要先导入activation.jar,mail.jar两个包

使用的sina邮箱往163的两个邮箱发送邮件

下面是简单的测试源码

 

MailConfig .java代码 

package com.test;public class MailConfig {private String from;//发件人private String to;//收件人private String host;//发送邮件服务器private String password;//密码public String getFrom() {return from;}public void setFrom(String from) {this.from = from;}public String getTo() {return to;}public void setTo(String to) {this.to = to;}public String getHost() {return host;}public void setHost(String host) {this.host = host;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

 

 

SendMail .java

package com.test;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.DataSource;import javax.activation.FileDataSource;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;public class SendMail {public void sendMail(String subject,String content,MailConfig mailConfig,String fileNames){Properties props = new Properties();props.put("mail.smtp.host", mailConfig.getHost());Session session = Session.getDefaultInstance(props,null);Message message = new MimeMessage(session);try{message.setFrom(new InternetAddress(mailConfig.getFrom()));message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(mailConfig.getTo()));message.setSubject(subject);BodyPart bodyPart = new MimeBodyPart();bodyPart.setText(content);Multipart multipart = new MimeMultipart();multipart.addBodyPart(bodyPart);if(!(fileNames==null||fileNames.length()==0)){String [] s = fileNames.split(",");for(String fileName:s){BodyPart messageBodyPart = new MimeBodyPart();DataSource dataSource = new FileDataSource(fileName);messageBodyPart.setDataHandler(new DataHandler(dataSource));messageBodyPart.setFileName(dataSource.getName());multipart.addBodyPart(messageBodyPart);}}message.setContent(multipart);Transport transport = session.getTransport("smtp");transport.connect(mailConfig.getHost(), mailConfig.getFrom(), mailConfig.getPassword());transport.sendMessage(message, message.getAllRecipients());transport.close();}catch(Exception e){e.printStackTrace();}}}


MailTest.java

package com.test;public class MailTest {public static void main(String[] args) {String subject = "测试";String content = "邮件测试,带附件的测试!";MailConfig mailConfig = new MailConfig();mailConfig.setHost("smtp.sina.com.cn");//smtp服务器,我这用的是sina的smtpmailConfig.setFrom("fengjiang1017@sina.com");//发件人邮箱mailConfig.setTo("yang_fengjiang@163.com,snrqtdhuqf@163.com");//多个收件人使用逗号分隔mailConfig.setPassword("xxxxxx");//发件人密码SendMail mail = new SendMail();//这是带附件的邮件发送,如果没有邮件,可以置fileNames=""或者fileNames=nullString fileNames = "d:/sof.sql,d:/myeclipse_templates_8.5.rar";mail.sendMail(subject, content, mailConfig, fileNames);System.out.println("发送成功!");}}
原创粉丝点击