首页 > 代码库 > javamail发件、收件(SSL连接)
javamail发件、收件(SSL连接)
需要的包:mail.jar jsse.jar(说明:jsse.jar是jre自带的,如果jdk1.5及以下需要Java Activation Framework框架的activation.jar)
【发件】
import java.net.URL;import java.security.Security;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Authenticator;import javax.mail.Message;import javax.mail.PasswordAuthentication;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 static void main(String[] args) { try { //设置SSL连接、邮件环境 Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; Properties props = System.getProperties(); props.setProperty("mail.smtp.host", "smtp.qq.com"); props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY); props.setProperty("mail.smtp.socketFactory.fallback", "false"); props.setProperty("mail.smtp.port", "465"); props.setProperty("mail.smtp.socketFactory.port", "465"); props.setProperty("mail.smtp.auth", "true");// props.put("mail.smtp.host", "smtp.qq.com");// props.put("mail.smtp.socketFactory.class", SSL_FACTORY);// props.put("mail.smtp.socketFactory.fallback", "false");// props.put("mail.smtp.port", "465");// props.put("mail.smtp.socketFactory.port", "465");// props.put("mail.smtp.auth", "true"); //建立邮件会话 Session session = Session.getDefaultInstance(props, new Authenticator() { //身份认证 protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("username", "password"); } }); //建立邮件对象 MimeMessage message = new MimeMessage(session); //设置邮件的发件人、收件人、主题 //附带发件人名字// message.setFrom(new InternetAddress("from_mail@qq.com", "optional-personal")); message.setFrom(new InternetAddress("from_mail@qq.com")); message.setRecipients(Message.RecipientType.TO, "to_mail@qq.com"); message.setSubject("通过javamail发出!!!"); //文本部分 MimeBodyPart textPart = new MimeBodyPart(); textPart.setContent("图<img src=http://www.mamicode.com/‘cid:myimg‘/>文加附件邮件测试", "text/html;charset=UTF-8"); //内嵌图片部分 MimeBodyPart imagePart = new MimeBodyPart(); imagePart.setDataHandler(new DataHandler(new FileDataSource("imagePath")));//图片路径 imagePart.setContentID("myimg"); //图文整合,关联关系 MimeMultipart mmp1 = new MimeMultipart(); mmp1.addBodyPart(textPart); mmp1.addBodyPart(imagePart); mmp1.setSubType("related"); MimeBodyPart textImagePart = new MimeBodyPart(); textImagePart.setContent(mmp1); //附件部分 MimeBodyPart attachmentPart = new MimeBodyPart(); DataHandler dh = new DataHandler(new FileDataSource("filePath"));//文件路径 String fileName = dh.getName(); attachmentPart.setDataHandler(dh); attachmentPart.setFileName(fileName); //图文和附件整合,复杂关系 MimeMultipart mmp2 = new MimeMultipart(); mmp2.addBodyPart(textImagePart); mmp2.addBodyPart(attachmentPart); mmp2.setSubType("mixed"); //将以上内容添加到邮件的内容中并确认 message.setContent(mmp2); message.saveChanges(); //发送邮件 Transport.send(message); } catch (Exception e) { e.printStackTrace(); } }}
【收件】
import java.security.Security;import java.text.SimpleDateFormat;import java.util.Properties;import javax.mail.FetchProfile;import javax.mail.Folder;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.Session;import javax.mail.Store;import javax.mail.URLName;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeUtility;//查看收件箱邮件public class Inbox { public static void main(String[] args) { //设置SSL连接、邮件环境 Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; Properties props = System.getProperties(); props.setProperty("mail.pop3.host", "smtp.qq.com"); props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY); props.setProperty("mail.pop3.socketFactory.fallback", "false"); props.setProperty("mail.pop3.port", "995"); props.setProperty("mail.pop3.socketFactory.port", "995"); props.setProperty("mail.pop3.auth", "true");// props.put("mail.pop3.host", "smtp.qq.com");// props.put("mail.pop3.socketFactory.class", SSL_FACTORY);// props.put("mail.pop3.socketFactory.fallback", "false");// props.put("mail.pop3.port", "995");// props.put("mail.pop3.socketFactory.port", "995");// props.put("mail.pop3.auth", "true"); //建立邮件会话 Session session = Session.getDefaultInstance(props, null); //设置连接邮件仓库的环境 URLName url = new URLName("pop3", "pop.qq.com", 995, null, "username", "password"); Store store = null; Folder inbox = null; try { //得到邮件仓库并连接 store = session.getStore(url); store.connect(); //得到收件箱并抓取邮件 inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); FetchProfile profile = new FetchProfile(); profile.add(FetchProfile.Item.ENVELOPE); Message[] messages = inbox.getMessages(); inbox.fetch(messages, profile); //打印收件箱邮件部分信息 int length = messages.length; System.out.println("收件箱的邮件数:" + length); System.out.println("-------------------------------------------\n"); for (int i = 0; i < length; i++) { String from = MimeUtility.decodeText(messages[i].getFrom()[0].toString()); InternetAddress ia = new InternetAddress(from); System.out.println("发件人:" + ia.getPersonal() + ‘(‘ + ia.getAddress() + ‘)‘); System.out.println("主题:" + messages[i].getSubject()); System.out.println("邮件大小:" + messages[i].getSize()); System.out.println("邮件发送时间:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(messages[i].getSentDate())); System.out.println("-------------------------------------------\n"); } } catch (Exception e) { e.printStackTrace(); } finally { try { inbox.close(false); } catch (MessagingException e) { e.printStackTrace(); } try { store.close(); } catch (MessagingException e) { e.printStackTrace(); } } }}
javamail发件、收件(SSL连接)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。