`
chengyue2007
  • 浏览: 1489261 次
  • 性别: 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发送邮件及附件的...通过以上分析可以看出,这段代码主要实现了通过JavaMail API发送带附件的邮件的基本流程。开发者可以根据实际需求调整邮件内容、附件等参数。

    java连接Lotes邮件服务器(Domino) 读取邮件内容附件完整实例

    接下来,`AttachmentEntity.java`是用于表示邮件附件的数据模型类。它应包含附件的名称、类型、大小等属性,以及读取和保存附件的方法。 `DateUtil.java` 文件可能包含了日期转换的辅助方法,因为Lotus Domino和...

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

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

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

    在Java编程中,发送带有附件的邮件是一项常见的任务,尤其对于自动化报告或者系统通知非常有用。以下是如何利用Java实现这一功能的详细步骤和关键知识点: 首先,你需要配置邮件发送的相关属性,这通常通过一个...

    java开发实现163邮件发送(支持附件

    同时,为了提高代码的可维护性和测试性,可以考虑使用依赖注入来管理`Session`对象,以及使用策略模式处理不同类型的邮件内容(如纯文本、HTML或带附件的邮件)。 总结,通过JavaMail API和163邮箱的SMTP服务,我们...

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

    Java邮件发送是一个常见的任务,尤其在自动化通知、报表发送或者数据传输等场景中。下面将详细解释如何在Java中实现邮件发送,以及如何创建和测试此类功能。 首先,要发送邮件,我们需要使用JavaMail API,这是一个...

    java 邮件发送测试

    Java邮件发送是一个常见的任务,尤其在自动化通知、报表发送或者用户服务中扮演着重要角色。在Java中,我们可以使用JavaMail API来实现这个功能。JavaMail API是一个开源库,允许开发者通过SMTP(简单邮件传输协议)...

    jsp,java,邮件发送器(带附件)

    "jsp,java,邮件发送器(带附件)" 这个标题指出,我们关注的是一个使用Java和JSP技术实现的电子邮件发送系统,具备发送附件的功能。这意味着该系统能够处理不仅仅是纯文本内容,还支持包括文档、图片、音频等各种...

    java 发邮件例子

    以下是一个基于`commons-email-1.1`库的Java发邮件实例: 首先,确保你的项目已经正确地引入了`commons-email`库。这通常通过Maven或Gradle的依赖管理来完成。如果你使用的是Maven,可以在`pom.xml`文件中添加以下...

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

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

    java发邮件程序

    message.setSubject("Java邮件测试"); // 主题 message.setText("这是一封来自Java程序的测试邮件。"); // 内容 // 发送邮件 Transport.send(message); System.out.println("邮件已发送成功!"); } catch ...

    Java查询OutLook邮件代码

    通过 `MimeMultipart` 类,我们可以解析邮件的多个部分,包括正文和附件。 7. **处理附件**: 如果邮件有附件,`MimeBodyPart` 类可以帮助我们获取和保存附件。`MimeMessage.getContent()` 返回邮件内容,如果邮件...

    java发送邮件功能

    Java发送邮件功能是Java开发中常见的一项任务,它允许开发者通过编程的方式实现电子邮件的发送,包括正文内容、附件以及抄送等高级功能。在Java中,我们主要利用JavaMail API来实现这一目标。 JavaMail API是一个...

    Java邮件发送方法,本地测试实例

    本实例将详细讲解如何使用Java实现邮件发送功能,以及如何在本地进行测试。 首先,要发送邮件,我们需要引入相关的JavaMail API库。在Java中,这通常涉及到两个核心的JAR包:`javax.mail.jar` 和 `activation.jar`...

    java 发邮件实例

    本篇文章将深入探讨如何使用Java实现邮件发送功能,主要基于`javax.mail`库,这是一个标准的Java邮件API。 首先,理解Java Mail API的工作原理至关重要。它提供了一组接口和类,用于处理邮件服务器上的邮件消息。...

    javamail收取邮件(包括附件)

    邮件中的信息,包括主题、发件人、日期等,可以通过`Message`对象的方法获取。例如: ```java String subject = message.getSubject(); String from = message.getFrom()[0].toString(); Date sentDate = message....

    Java发邮件:通过Bean封装.rar

    编写单元测试来验证邮件发送的功能,确保邮件的各个部分(如标题、正文、附件)都能正确设置和发送。同时,也可以通过日志记录来跟踪程序执行过程,方便调试。 通过以上步骤,我们可以实现一个基于JavaBean和XML...

    java电子邮件所需jar包,已通过测试

    总之,`mail.jar`和`activation.jar`是构建Java邮件应用的基础,它们为开发者提供了完整的邮件处理能力,包括连接邮件服务器、创建和发送邮件、解析和管理邮件附件等。通过熟练掌握这两个库,开发者可以轻松地在Java...

    java收发邮件完整版

    Java邮件收发是Java开发中常见的一项功能,主要用于企业级应用、自动化测试或者日常的数据通信。这个"java收发邮件完整版"项目提供了一个完整的Java邮件发送和接收的解决方案,确保用户可以顺利地通过编程方式处理...

    java 发邮件项目

    本项目专注于使用Java来实现邮件发送功能,确保代码测试运行正常。以下是对该项目涉及的知识点的详细说明: 1. **JavaMail API**: 这是Java发送邮件的核心库,提供了与邮件服务器交互的接口和类。主要包括`javax....

Global site tag (gtag.js) - Google Analytics