`
chengyue2007
  • 浏览: 1470682 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Java发邮件带附件测试通过

    博客分类:
  • java
阅读更多
package com.fonytech;    
   
import java.util.Properties;     
import javax.activation.DataHandler;     
import javax.activation.FileDataSource;     
import javax.mail.Address;     
import javax.mail.Authenticator;     
import javax.mail.BodyPart;     
import javax.mail.Message;     
import javax.mail.Multipart;     
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;    
   
/**    
* @author Administrator    
*    
* TODO To change the template for this generated type comment go to Window -    
* Preferences - Java - Code Style - Code Templates    
*/     
public class MailConstructor {     
// private String EnvelopeFrom;//邮件发送地址     
// private String MailHost;//邮件服务器     
private String UserName;// 用户名    
   
private String PassWord;// 用户密码    
   
private MimeMessage mimeMsg; // MIME邮件对象    
   
private Session session; // 邮件会话对象    
   
private Properties props; // 系统属性     
// private boolean needAuth = false; //smtp是否需要认证    
   
private Multipart mp; // Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象     
Authenticator auth;    
   
public MailConstructor() {     
}    
   
/**    
* public void sendMail() {    
* setSmtpHost(getConfig.mailHost);//如果没有指定邮件服务器,就从getConfig类中获取    
* createMimeMessage(); }    
*/     
public MailConstructor(String smtp) {     
setSmtpHost(smtp);     
createMimeMessage();    
   
}    
   
/**    
* @param hostName    
*            String    
*/     
public void setSmtpHost(String hostName) {     
System.out.println("设置系统属性:mail.smtp.host = " + hostName);     
if (props == null)     
props = System.getProperties(); // 获得系统属性对象     
props.put("mail.smtp.host", hostName); // 设置SMTP主机    
   
auth = new Email_Autherticator();//进行邮件服务器用户认证     
props.put("mail.smtp.auth","true");     
   
   
}    
   
/**    
* @return boolean    
*/     
public boolean createMimeMessage() {     
try {     
System.out.println("准备获取邮件会话对象!");     
session = Session.getDefaultInstance(props, null); // 获得邮件会话对象     
} catch (Exception e) {     
System.err.println("获取邮件会话对象时发生错误!" + e);     
return false;     
}     
System.out.println("准备创建MIME邮件对象!");     
try {     
mimeMsg = new MimeMessage(session); // 创建MIME邮件对象     
mp = new MimeMultipart();     
return true;     
} catch (Exception e) {     
System.err.println("创建MIME邮件对象失败!" + e);     
return false;     
}     
}    
   
/**    
* @param need    
*            boolean    
*/     
public void setNeedAuth(boolean need) {     
System.out.println("设置smtp身份认证:mail.smtp.auth = " + need);     
if (props == null)     
props = System.getProperties();     
if (need) {     
props.put("mail.smtp.auth", "true");     
} else {     
props.put("mail.smtp.auth", "false");     
}     
}    
   
/**    
* @param name    
*            String    
* @param pass    
*            String    
*/     
public void setNamePass(String name, String pass) {     
UserName = name;     
PassWord = pass;     
}    
   
/**    
* @param mailSubject    
*            String    
* @return boolean    
*/     
public boolean setSubject(String mailSubject) {     
System.out.println("设置邮件主题!");     
try {     
mimeMsg.setSubject(mailSubject);     
return true;     
} catch (Exception e) {     
System.err.println("设置邮件主题发生错误!");     
return false;     
}     
}    
   
/**    
* @param mailBody    
*            String    
*/     
public boolean setBody(String mailBody) {     
try {     
BodyPart bp = new MimeBodyPart();     
bp.setContent(     
" <meta http-equiv=Content-Type content=text/html; charset=gb2312>"     
+ mailBody, "text/html;charset=GB2312");     
mp.addBodyPart(bp);     
return true;     
} catch (Exception e) {     
System.err.println("设置邮件正文时发生错误!" + e);     
return false;     
}     
}    
   
public boolean addFileAffix(String filename) {     
System.out.println("增加邮件附件:" + filename);     
try {     
BodyPart bp = new MimeBodyPart();     
FileDataSource fileds = new FileDataSource(filename);     
bp.setDataHandler(new DataHandler(fileds));     
bp.setFileName(fileds.getName());     
mp.addBodyPart(bp);     
return true;     
} catch (Exception e) {     
System.err.println("增加邮件附件:" + filename + "发生错误!" + e);     
return false;     
}     
}    
   
public boolean setFrom(String from) {     
System.out.println("设置发信人!");     
try {     
mimeMsg.setFrom(new InternetAddress(from)); // 设置发信人     
return true;     
} catch (Exception e) {     
return false;     
}     
}    
   
public boolean setTo(String to) {     
if (to == null)     
return false;     
try {     
mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress     
.parse(to));     
return true;     
} catch (Exception e) {     
return false;     
}     
}    
   
public boolean setCopyTo(String copyto) {     
if (copyto == null)     
return false;     
try {     
mimeMsg.setRecipients(Message.RecipientType.CC,     
(Address[]) InternetAddress.parse(copyto));     
return true;     
} catch (Exception e) {     
return false;     
}     
}    
   
public boolean sendout() {     
try {     
mimeMsg.setContent(mp);     
mimeMsg.saveChanges();     
System.out.println("正在发送邮件....");     
Session mailSession = Session.getInstance(props, auth);     
Transport transport = mailSession.getTransport("smtp");     
transport.connect((String) props.get("mail.smtp.host"), UserName,PassWord);    
   
transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));     
// transport.send(mimeMsg);     
System.out.println("发送邮件成功!");     
transport.close();     
return true;     
} catch (Exception e) {     
System.err.println("邮件发送失败!" + e);     
return false;     
}     
}    
   
/**    
* Just do it as this    
*/     
public static void main(String[] args) {     
String mailbody = " <meta http-equiv=Content-Type content=text/html; charset=gb2312>"     
+ " <div align=center> <a href=http://www.csdn.net> 恭喜你,中奖啦! </a> </div>";     
MailConstructor themail = new MailConstructor("smtp.163.com");     
themail.setNeedAuth(true);     
if (themail.setSubject("标题") == false)     
return;     
if (themail.setBody(mailbody) == false)     
return;     
if (themail.setFrom("wpwxf@163.com") == false)     
return;     
if (themail.setTo("423567430@qq.com") == false)     
return;    
   
if (themail.setBody("恭喜你,你中一等奖啦!!!") == false)     
return;     
if (themail.addFileAffix("E:/test.txt") == false)     
return;     
// if(themail.addFileAffix("c:\\boot.ini") == false) return;     
themail.setNamePass("wpwxf@163.com", "******");     
if (themail.sendout() == false)     
return;     
}    
   
public class Email_Autherticator extends Authenticator     
    {//此段代码用来进行服务器对用户的认证     
              public Email_Autherticator()     
                  {     
                        super();     
                  }     
              public PasswordAuthentication getPasswordAuthentication()     
                  {     
                          return new PasswordAuthentication(UserName,PassWord);     
                  }     
    }     
   
}    
   

 

:要用到activation.jar跟mail.jar两个jar包

-- http://hi.baidu.com/wpwxf/blog/item/cf41864264fe1e1472f05df6.html

 

 

 

分享到:
评论

相关推荐

    java发送邮件以及附件 复制直接测试

    此文本是我们系统中的java发送邮件以及附件的源文件,分享给大家,直接可以测试,记得需要注册邮件服务器

    java邮件读取工具类,可读取附件,功能强大!

    java邮件读取工具类,可读取附件,功能强大,经测试可用。

    java实现发送邮件(普通邮件和带附件)功能

    本项目是基于java来实现的普通邮件发送和带附件功能,完整项目代码,并且测试OK

    java实现邮件抄送,密送,多个附件发送

    封装好了方法, 传入发送邮件的邮箱和收邮件的邮箱即可测试使用

    利用Java发送邮件(含附件)的例子

    } /** * 增加发送附件 * @param filename * 邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常 * @return */ public boolean addFileAffix(String filename) { try { BodyPart bp = new MimeBodyPart...

    java邮件发送,带附件与测试类

    java邮件发送,直接是eclipse项目,其中MailTest是测试类

    JAVA_Mail_邮件_发送_接收_抄送_密送_附件

    JAVA_Mail_邮件_发送_接收_抄送_密送_附件 该资源是一个Java项目,可用Eclipse导入即可运行。 共4个类: 1:ReceiveMail.java -接收普通邮件 2:ReciveMailWithAttachMent.java --接收含有附件的邮件 3:SendMail....

    一行代码实现的java发邮件

    资源中就一个测试类,把发件人资料改成自己的,运行测试方法即可发邮件,简单实用: 1,仅需一行代码; 2,支持附件; 3,支持群发; 4,支持抄送 5,支持任何邮箱服务器(比如QQ,163),如果是自己的服务器,需要...

    java编写的发送邮件和附件

    用java编写的程序,用于发送邮件。 注意,在自己的机器上测试时,要求你的机器上已经有了这个mail的服务器,并设置用户密码等信息

    java发送邮件实例(含mail包)

    java发送邮件2实例,内有java包。我原来是在myEcilpse上进行测试的,实例一是结合ssh框架使用,非常方便。实例二直接用servlet发送,稍微繁琐

    javamail发送邮件(带附件)

    该资源是一个javamail发送邮件的例子,里面集成了别人的文件发送的功能,单次发送邮件只能上传一个附件。是一个测试方法,拿过来改一改邮件的地址和密码就可以使用了

    javaEmail多附件

    采用Javaemail技术,实现多人多附件邮件发送,可自定义发件人和收件人昵称,有工具类和测试类两部分,很适合初学者

    java email和email附件发送

    这里使用的是163的邮箱测试,用qq的邮箱验证不了,要加别的东西,暂时先用163的测试,邮件成功发送,2016.06.07

    JAVA发送邮件开源代码

    String subject="Java发送邮件测试!";//邮件主题 String body="&lt;a href=http://www.qq.com&gt;qq.com" + "&lt;/a&gt;&lt;br&gt;&lt;img src=\"cid:8.jpg\"&gt;";//邮件内容 这是一个HTTP网页类的邮件内容 public static void main...

    邮件发送 poi 二维码 条形码等java常用的工具类

    MailUtil:邮件工具类,包括发送纯文本邮件,带(1个/多个)附件的邮件, 群发邮件 NumberUtil:数字操作工具 包括精准数字运算,数据格式化 PageUtil:分页工具类, POIUtil:poi工具类,excel导出 QrCodeUtil...

    Javax实现邮件接收和发送,支持附件

    6、 测试:在MailTest.java中,将附件路径改为本地确实存在的文件全路径,设置接收人,运行 (发送文本不会发送附件,附送Html邮件才会发送附件,接收邮件可以拿到所有未读邮件,已读不会下载,下载时会把附件下载到...

    java邮件发送工具类

    java邮件发送工具类包含附件正常发送 亲测有效,附件正常显示解决内容和附件不能同事显示问题!测试成功实现内容和附件同时发送成功

    pop3接收邮件并可以收附件

    利用open pop3组件实现了邮件的接收并可以接收附件,里面还有实例。测试过的,可以用的

    Java发送邮件

    通过java发送邮件,只需要简单的代码便可以抄送,加附件等等,非常方便,测试有效。

Global site tag (gtag.js) - Google Analytics