在网上找了半天才找到了一点比较满意的代码,但是不能直接拿来用,所以就修改了一下,可能有不完美的地方,如果你发现了一定要告诉我哦!有什么需要我帮助的话请发yuxia2217@163.com联系我!大家一起学习一起讨论!
要用到的两个包,因为不能上传附件所以没有传上来,有需要的话,发邮件给我!有时间的话发给你!
用到的包名
activation.jar
mail.jar
java日志文件包可以不用
log4j-1.2.11.jar
源代码如下:
package test;
import java.awt.List;
import java.net.MalformedURLException;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
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;
import org.dom4j.DocumentException;
/**
* @author 俞晓坚
*update 2007-08-15
*
*/
public class MailSendtest {
String host="smtp.163.com";
String userName="yuxia2217";//可替换为你自己的邮箱用户名
String password="***************************";//不好意思密码不能给你们看
String from=yuxia2217@163.com //你要发送的邮箱名称
String to;//发给谁
String subject;//邮件议题
String body;//内容
String fileName;//附件路径(注意绝对路径和相对路径的选择)
// 用于保存发送附件的文件名列表
List arrFileName = new List();
public MailSendtest(String to, String subject, String body)
throws MalformedURLException, DocumentException {
//初始化发件人、收件人、主题等
this.to = to;
this.subject =subject;
this.body = body;
}
// 用于收集附件名
public void attachFile(String fileName) {
this.arrFileName.add(fileName);
}
// 开始发送
public boolean startSend() {
//创建Properties对象
Properties props = System.getProperties();
//创建信件服务器
props.put("mail.smtp.host", this.host);
// props.put("mail.smtp.host", "smtp.163.com");
props.put("mail.smtp.auth", "true"); //通过验证
//得到默认的对话对象
Session session = Session.getDefaultInstance(props, null);
try {
//创建一个消息,并初始化该消息的各项元素
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(this.from));
if (this.to.trim().length() > 0) {
String[] arr = this.to.split(",");
//int ReceiverCount=1;
int receiverCount = arr.length;
if (receiverCount > 0) {
InternetAddress[] address = new InternetAddress[receiverCount];
for (int i = 0; i < receiverCount; i++) {
address[i] = new InternetAddress(arr[i]);
}
msg.addRecipients(Message.RecipientType.TO, address);
} else {
System.out
.println("None receiver! The program will be exit!");
System.exit(0);
}
} else {
System.out.println("None receiver! The program will be exit!");
System.exit(0);
}
msg.setSubject(subject);
//后面的BodyPart将加入到此处创建的Multipart中
Multipart mp = new MimeMultipart();
//获取附件
int FileCount = this.arrFileName.getItemCount();
if (FileCount > 0) {
for (int i = 0; i < FileCount; i++) {
MimeBodyPart mbp = new MimeBodyPart();
//选择出附件名
fileName = arrFileName.getItem(i).toString();
//得到数据源
FileDataSource fds = new FileDataSource(fileName);
//得到附件本身并至入BodyPart
mbp.setDataHandler(new DataHandler(fds));
//得到文件名同样至入BodyPart
mbp.setFileName(fds.getName());
mp.addBodyPart(mbp);
}
MimeBodyPart mbp = new MimeBodyPart();
mbp.setText(this.body);
mp.addBodyPart(mbp);
//移走集合中的所有元素
arrFileName.removeAll();
//Multipart加入到信件
msg.setContent(mp);
} else {
//设置邮件正文
msg.setText(this.body);
}
//设置信件头的发送日期
msg.setSentDate(new Date());
msg.saveChanges();
//发送信件
Transport transport = session.getTransport("smtp");
transport.connect(this.host, this.userName, this.password);
transport.sendMessage(msg, msg
.getRecipients(Message.RecipientType.TO));
transport.close();
} catch (MessagingException mex) {
mex.printStackTrace();
Exception ex = null;
if ((ex = mex.getNextException()) != null) {
ex.printStackTrace();
}
return false;
}
return true;
}
public static void main(String[] args) {
try {
MailSendtest sendmail = new MailSendtest("yuxia2217@163.com,yuzhi2217@163.com",
"邮件主题", "邮件内容");
sendmail.attachFile("E:\\eclipse\\startup.jar");//附件地址
sendmail.attachFile("E:\\eclipse\\notice.html");/ /附件2地址;根据需要可继续添加....................
sendmail.startSend();
System.out.println("OK");
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
javamail发送邮件;支持群发、单次发送;文本发送,html发送
介绍了如何利用javamail实现带附件的邮件发送,附有代码
基于javamail1.4实现邮件发送,支持多收件人、抄送人、多附件等
本资源是一个集合发送图片,附件,内容,HTML等得JAVAMAIL代码,并且可以同时发送多个附件多个图片,只需填充VO类,即可直接调用并发送邮件,例子已经写好,只要填充上必要值即可,经163,qq,sina测试没有问题,有...
JavaMail实现邮件发送功能,可发送、抄送、密送多人,支持多附件的发送。配置相关参数后可直接调用发送邮件
该资源是一个javamail发送邮件的例子,里面集成了别人的文件发送的功能,单次发送邮件只能上传一个附件。是一个测试方法,拿过来改一改邮件的地址和密码就可以使用了
里面详细的介绍了JavaMail发邮件(包括单个附件和多个附件)的机制,还有JavaMail正常使用所需要的JAR包,源程序例子经过本人详细且严格的测试,大家下载下来就可以直接使用啦。
javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码 查看debug 邮件处理过程发现邮件头没有编译, 内容是base64编码,所以邮箱收不到或者收到的是base64编码后的一堆乱码,
JavaMail邮件发送(带附件)
javaMail 用附件路径,文件流 byte[] 或 base64 字符串 实现发送附件功能
利用JavaMail API来发送Email的工具类 支持单发,群发及无限制数量的附件功能,并同时支持简单邮件和HTML两种格式的邮件内容 支持抄送,密送功能 具体使用参见其mail方法的使用示例
java发送附件mail, 包阔多附件,文本mail,以及网页mail.
Java邮件发送javamail
javaMail代码,内有javaMail开发手册,javaMail包,源代码.
javamail 做的多线程群发 同时开5个线程,可以很快的发送完。
javamail 实例 获取pop3或者imap方式获取邮件信息,配置运行MailHelper即可.
本资源是一个集合发送图片,附件,内容,HTML等得JAVAMAIL代码,并且可以同时发送多个附件多个图片,只需填充VO类,即可直接调用并发送邮件,例子已经写好,只要填充上必要值即可,经163,qq,sina测试没有问题,有...
java实现的发送电子邮件,支持HTMl格式且支持多附件发送
javamail发送邮件实例 javamail 发送邮件 文本编辑器 kindeditor
javaMail代码记录 javaMail代码记录