java发送邮件

本文介绍如何使用Java发送带有附件的电子邮件。通过两个关键的jar包(activation.jar和mail.jar),文章详细展示了创建邮件会话、设置邮件内容及附件的具体步骤,并提供了一个简单的测试示例。

在做java发送邮件需要两个jar包.

activation.jar

mail.jar

 

 mailUtils.java


9 import java.io.IOException; 10 11 import java.util.List; 12 13 import java.util.Properties; 14 15 16 17 import javax.mail.Authenticator; 18 19 import javax.mail.Message.RecipientType; 20 21 import javax.mail.MessagingException; 22 23 import javax.mail.PasswordAuthentication; 24 25 import javax.mail.Session; 26 27 import javax.mail.Transport; 28 29 import javax.mail.internet.InternetAddress; 30 31 import javax.mail.internet.MimeBodyPart; 32 33 import javax.mail.internet.MimeMessage; 34 35 import javax.mail.internet.MimeMultipart; 36 37 import javax.mail.internet.MimeUtility; 38 39 40 41 /** 42 43 * 44 45 * @author 本类只有这么一个方法,用来发邮件! 46 47 */ 48 49 public class MailUtils { 50 51 public static Session createSession(String host, final String username, final String password) { 52 53 Properties prop = new Properties(); 54 55 prop.setProperty("mail.host", host);// 指定主机 56 57 prop.setProperty("mail.smtp.auth", "true");// 指定验证为true 58 59 60 61 // 创建验证器 62 63 Authenticator auth = new Authenticator() { 64 65 public PasswordAuthentication getPasswordAuthentication() { 66 67 return new PasswordAuthentication(username, password); 68 69 } 70 71 }; 72 73 // 获取session对象 74 75 return Session.getInstance(prop, auth); 76 77 } 78 79 /** 80 81 * 发送指定的邮件 82 83 * 84 85 * @param mail 86 87 */ 88 89 public static void send(Session session, final Mail mail) throws MessagingException, 90 91 IOException { 92 93 94 95 MimeMessage msg = new MimeMessage(session);// 创建邮件对象 96 97 msg.setFrom(new InternetAddress(mail.getFrom()));// 设置发件人 98 99 msg.addRecipients(RecipientType.TO, mail.getToAddress());// 设置收件人 100 101 102 103 // 设置抄送 104 105 String cc = mail.getCcAddress(); 106 107 if (!cc.isEmpty()) { 108 109 msg.addRecipients(RecipientType.CC, cc); 110 111 } 112 113 114 115 // 设置暗送 116 117 String bcc = mail.getBccAddress(); 118 119 if (!bcc.isEmpty()) { 120 121 msg.addRecipients(RecipientType.BCC, bcc); 122 123 } 124 125 126 127 msg.setSubject(mail.getSubject());// 设置主题 128 129 130 131 MimeMultipart parts = new MimeMultipart();// 创建部件集对象 132 133 134 135 MimeBodyPart part = new MimeBodyPart();// 创建一个部件 136 137 part.setContent(mail.getContent(), "text/html;charset=utf-8");// 设置邮件文本内容 138 139 parts.addBodyPart(part);// 把部件添加到部件集中 140 141 /////////////////////////////////////////// 142 143 144 145 // 添加附件 146 147 List<AttachBean> attachBeanList = mail.getAttachs();// 获取所有附件 148 149 if (attachBeanList != null) { 150 151 for (AttachBean attach : attachBeanList) { 152 153 MimeBodyPart attachPart = new MimeBodyPart();// 创建一个部件 154 155 attachPart.attachFile(attach.getFile());// 设置附件文件 156 157 attachPart.setFileName(MimeUtility.encodeText(attach 158 159 .getFileName()));// 设置附件文件名 160 161 String cid = attach.getCid(); 162 163 if(cid != null) { 164 165 attachPart.setContentID(cid); 166 167 } 168 169 parts.addBodyPart(attachPart); 170 171 } 172 173 } 174 175 176 177 msg.setContent(parts);// 给邮件设置内容 178 179 Transport.send(msg);// 发邮件 180 181     } 182 183 } 184 185

 

mailUtilTest.java

 

mailUtilTest.java

/*

 * 1. 登录邮件服务器

 *   MailUtils.createSession(服务器地址, 登录名, 密码);

 * 2. 创建邮件对象

 *   发件人

 *   收件人

 *   主题

 *   正文

 * 3. 发

 *   需要第一步得到的session、和第二步的邮件对象

 */





Session session = MailUtils.createSession(服务器地址, 登录名, 密码);

Mail mail = new Mail("发件人", "收件人", "主题", "正文");

//发送

MailUtils.send(session, mail);

 

转载于:https://www.cnblogs.com/wdnnccey/p/5854353.html

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值