使用Java Mail发送邮件需要用到mail.jar和activation.jar(非必须),发送一个邮件的基本步骤是:
- 初始化一个Properties类,将邮件服务器相关属性以key,value的形式添加进去
- 根据Properties实例创建Session
- 根据Session创建Message,并且在Message中添加邮件的From,to,body, attachment等等
- 使用Transport.send(message)发送邮件
代码如下:
package com.jingshou.mail; import java.io.File; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; public class MailUtil { private static String host="smtp.gmail.com"; private static String port = "465"; private static String from = "10086@qq.com"; private static final String USER = "gmailaccount"; private static final String PASS = "gmailpassword"; private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; public static void main(String[] args) throws AddressException, MessagingException { String[] attachment = {"E:\\me.JPG"}; sendMail("8131****@qq.com", "Test Subject", "Test Content from Java with attachment", attachment); System.out.println("Email Send successfully"); } public static void sendMail(String to, String sub, String body, String[] attaches) throws AddressException, MessagingException{ Properties props = System.getProperties(); props.put("mail.smtp.host", host); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.socketFactory.class", SSL_FACTORY); props.put("mail.smtp.socketFactory.fallback", "false"); props.put("mail.smtp.port", port); props.put("mail.smtp.auth", "true"); // Create session by username and password Session session = Session.getDefaultInstance(props, new Authenticator(){ @Override public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(USER, PASS); } }); // Initialize Message Message message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); // Using message.setRecipients for To list message.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject(sub); message.setText(body); // Add attchment MimeBodyPart mbp = new MimeBodyPart(); mbp.setText(body); Multipart mpart = new MimeMultipart(); mpart.addBodyPart(mbp); if (attaches != null) { for (String fileName : attaches){ File file = new File(fileName); if (file.exists()) { mbp = new MimeBodyPart(); DataSource source = new FileDataSource(file); mbp.setDataHandler(new DataHandler(source)); mbp.setFileName(file.getName()); mpart.addBodyPart(mbp); System.out.println("The attached file name is: " + file.getName()); } } } message.setContent(mpart); // Sent by Transort.send() Transport.send(message); } }
运行程序发现发出邮件From始终是自己Gmail的帐号,而不是自己指定的地址
本文出自"lijingshou"博客,转载请务必保留此出处http://lijingshou.iteye.com/blog/2017611
相关推荐
使用 java mail 发送邮件
java mail 邮件发送 代码文档 java_mail_发送邮件代码 发送邮件及邮件附件java代码实例(支持多附件_群发送)
java Mail 发送邮件及邮件附件 java Mail 发送邮件及邮件附件
java 发送邮件 spring发送邮件Mail
java mail 发送邮件源代码以及所需要的两个架包。 附件代码以腾讯企业邮箱发送邮件为例子,其它邮箱只要支持SMTP服务即可。只要懂点JAVA就能看懂。
基于javax.mail的邮件发送测试工具
利用Java mail发送邮件,用到的一些类,一些方法,写的很简陋
java mail发送qq邮件的一个例子,谢谢大家的支持
java发送邮件工具类,用于java程序实现邮件的发送功能
java mail详细发送邮件代码
java发送附件mail, 包阔多附件,文本mail,以及网页mail.
java发送电子邮件,程序和jar包都在里面,使用方法也有,程序可直接使用,直接改成自己的邮箱和密码就能发送了,解决了很多人java发送邮件不成功的烦恼
压缩包中有纯java程序发送邮件其中有发送纯文本格式、带附件格式、图片格式、附件图片并显示格式。
JAVA_Mail_邮件_发送_接收_抄送_密送_附件 该资源是一个Java项目,可用Eclipse导入即可运行。 共4个类: 1:ReceiveMail.java -接收普通邮件 2:ReciveMailWithAttachMent.java --接收含有附件的邮件 3:SendMail....
java定时发送邮件java定时发送邮件java定时发送邮件java定时发送邮件java定时发送邮件java定时发送邮件java定时发送邮件
java发送邮件 java发送邮件 java发送邮件 java发送邮件 java发送邮件 java发送邮件 java发送邮件 java发送邮件
MAIL. JAVA POP3 SMTP imap 发送邮件
java实现的根据html模版内容发送邮件,这是一个完整的eclipse项目,包含jar包,导入即可运行