/** * 邮件发送 */ /** * @author */ public class EmailServiceImpl { private String sendHost = null;// 发送服务器地址 private String receiveHost = null;// 接受服务器地址 private String user = null;// 邮件服务器账号 private String password = null;// 邮件服务器账号密码 private String from = null;// 来源地址 /** * 获得配置文件内容 * @author */ public void Proper() { Properties prop = new Properties(); String file = this.getClass().getResource("/emailserver.properties").getFile(); FileInputStream in = null; try { in = new FileInputStream(file); prop.load(in); in.close(); } catch (Exception e) { e.printStackTrace(); } sendHost=prop.getProperty("emailserver.sendHost"); receiveHost = prop.getProperty("emailserver.receiveHost"); user=prop.getProperty("emailserver.user"); password=prop.getProperty("emailserver.password"); from=prop.getProperty("emailserver.from"); //System.out.println(password); //System.out.println("==sendHost="+sendHost+"==receiveHost=="+receiveHost+"===user==="+user+"===password=="+password); } /** * @return the sendHost */ public String getSendHost() { return sendHost; } /** * @param sendHost * the sendHost to set */ public void setSendHost(String sendHost) { this.sendHost = sendHost; } /** * @return the receiveHost */ public String getReceiveHost() { return receiveHost; } /** * @param receiveHost * the receiveHost to set */ public void setReceiveHost(String receiveHost) { this.receiveHost = receiveHost; } /** * @return the user */ public String getUser() { return user; } /** * @param user * the user to set */ public void setUser(String user) { this.user = user; } /** * @return the password */ public String getPassword() { return password; } /** * @param password * the password to set */ public void setPassword(String password) { this.password = password; } /* 发送邮件时是否进行身份验证 */ private boolean authFlag = true; /* 发送邮件是否需要代理 */ private boolean proxyFlag = false; /* 其他设置 */ private boolean restFlag = false; /** * 设置邮件发信人、收信人、抄送、密送、邮件标题、邮件内容、附件的文件名称(包括路径) 同时生成Session、Message,并且调用发送邮件 */ public synchronized int sendEmailNow(String to,String cc,String subject, String body, String attchFile) { //System.out.println("hello"); Proper(); int successFlag = 0; int m_result; try { Properties props = System.getProperties(); // Properties用来将props传给MAIL Session session = null; // 创建Session对象 props.put("mail.smtp.host", sendHost); if (authFlag) { props.put("mail.smtp.auth", "true"); } else { props.put("mail.smtp.auth", ""); } session = Session.getInstance(props, null); if (restFlag) { session.setDebug(true); } /** 创建邮件MESSAGE */ Message mesg = new MimeMessage(session); InternetAddress[] addresses; /** from 地址列表 */ if (!from.equals("")) { mesg.setFrom(new InternetAddress(from)); } else { System.out.println("请填写发信人地址"); return -2; } /** TO地址列表 */ if (!to.equals("")) { addresses = InternetAddress.parse(to); mesg.setRecipients(javax.mail.Message.RecipientType.TO, addresses); // mesg.setr //mesg.setr } else { System.out.println("请填写收信人地址"); return -3; } /** CC地址列表 抄送*/ if (cc!=null&&!cc.equals("")) { //wlog.userLog(cc); addresses = InternetAddress.parse(cc); mesg.setRecipients(javax.mail.Message.RecipientType.CC, addresses); } /** 设置邮件主题topic */ if (!subject.equals("")) { mesg.setSubject(subject); } else { mesg.setSubject(subject); System.out.println("请填写邮件主题"); } /** 设置邮件内容 */ if (attchFile==null || attchFile.equals("")) { mesg.setContent(body, "text/html;charset=GBK"); //mesg.setText(body); } else { Multipart mp = new MimeMultipart(); MimeBodyPart mbp = new MimeBodyPart(); mbp.setContent(body, "text/html;charset=GBK"); mp.addBodyPart(mbp); /** 添加附件 */ ArrayList attachlist = tokenize(attchFile); for (int i = 0; i < attachlist.size(); i++) { MimeBodyPart attachMbp = new MimeBodyPart(); FileDataSource fds = new FileDataSource( (String) (attachlist.get(i))); attachMbp.setDataHandler(new DataHandler(fds)); attachMbp.setFileName(MimeUtility.encodeText(fds.getName(), "GBK", "B")); attachMbp.setHeader("Content-Type", fds.getContentType()); mp.addBodyPart(attachMbp); } mesg.setContent(mp); } /** 设置邮件发送时间 */ mesg.setSentDate(new Date()); /** 发送邮件 */ if (authFlag) { Transport tr = session.getTransport("smtp"); tr.connect(sendHost, user, password); mesg.saveChanges(); tr.sendMessage(mesg, mesg.getAllRecipients()); tr.close(); } else { Transport.send(mesg); } }catch (MessagingException e) {/* send发送邮件的异常处理 */ System.out.println("邮件发送失败!"); successFlag=-9; e.printStackTrace(); } catch (Exception e) { successFlag=-9; e.printStackTrace(); } return successFlag; } private ArrayList tokenize(String s) { ArrayList arrayl = new ArrayList(); for (StringTokenizer stringtok = new StringTokenizer(s, ","); stringtok .hasMoreTokens(); arrayl.add(stringtok.nextToken().trim())) ; return arrayl; } String sendProtocol = "smtp"; String receiveProtocol = "pop3"; /** * 覆盖方法 */ public boolean sendEmail(String to,String cc, String subject, String body, String attchFile) { int successflag=sendEmailNow(to,cc,subject,body,attchFile); if(successflag==0){ return true; }else{ return false; } } } 配置文件: emailserver.properties: emailserver.sendHost=//邮箱服务器,比如163的:smtp.163.com emailserver.receiveHost=//不填 emailserver.user=//发送邮件的用户名,该邮箱必须是emailserver.sendHost的邮箱 emailserver.password=//发送邮件的密码 emailserver.from=//同emailserver.user 发邮件需要的jar包: activation.jar,mail.jar
可能出现的异常:
Exception in thread "main" java.lang.NoClassDefFoundError:
com/sun/mail/util/LineInputStreams
原因是jar包版本不统一,解决方法如下:
删除Java EE 5 Libraries/javaee.jar/mail里的包有东西.
具体方法如下:
在Myeclipse6.0.1中用rar打开X:/Program Files/MyEclipse 6.0/
myeclipse/eclipse/plugins/
com.genuitec.eclipse.j2eedt.core_6.0.1.zmyeclipse601200710/
data/libraryset/EE_5/
javaee.jar
在Myeclipse8.5中 D:/Program Files/MyEclipse 8.5/
Common/plugins/
com.genuitec.eclipse.j2eedt.core_8.5.0.me201003231033/
data/libraryset/EE_5/EE_5/javaee.jar ,然后删除mail,一切就ok了.
若删除的时候出错,则需要先在myeclipse里面删除掉引用了J2ee5.0的工程,
然后再关闭myeclipse再进行删除操作。
相关推荐
4. **创建Message对象**:`Message`对象代表邮件本身,使用`MimeMessage`类创建它,并设置发件人、收件人、主题和正文。例如: ```java MimeMessage message = new MimeMessage(session); message.setFrom(new ...
在“java发邮件相关jar包”中,可能包含以下关键库: 1. **JavaMail API**: 这是Java用来处理邮件的核心库,包括`javax.mail`和`javax.mail.internet`这两个主要的包。它们提供了邮件协议(如SMTP、POP3、IMAP)的...
3. **创建Message对象**:使用Session对象创建一个Message实例,设置邮件的基本信息,如发件人、收件人、主题和正文。 ```java Message message = new MimeMessage(session); message.setFrom(new InternetAddress...
以下是一个基于`commons-email-1.1`库的Java发邮件实例: 首先,确保你的项目已经正确地引入了`commons-email`库。这通常通过Maven或Gradle的依赖管理来完成。如果你使用的是Maven,可以在`pom.xml`文件中添加以下...
JavaMail是Java编程语言中用于发送和接收电子邮件的标准API,它是通过JavaMail API来实现的。这个API提供了与SMTP(简单邮件传输协议)服务器交互的能力,使得开发者可以在应用程序中轻松地发送邮件。在这个主题中,...
在本例中,"java发邮件用到的jar包"指的是用于处理电子邮件的Java类库。下面将详细解释如何使用这些jar包以及相关的知识点。 首先,JavaMail API是Java中处理邮件的核心库,它提供了发送和接收电子邮件的接口。为了...
通过实例,用java发邮件,保证秒懂, Xmail xmail = new Xmail(); xmail.setUsername("/////@163.com"); //设置发件人邮箱名字 xmail.setPassword("*******"); //邮箱密码 xmail.setHost("smtp.163.com"); //...
综上所述,"java 发邮件项目"涵盖的内容广泛,包括了邮件系统的配置、邮件对象的构建、网络通信以及异常处理等多个方面。通过这个项目,开发者可以学习到如何在Java环境中实现可靠且灵活的邮件发送功能。
在Java编程中,发送电子邮件是一项常见的任务,而这个“java发邮件所需架包”则包含了完成这项任务所需的两个关键库:activation和mail。这两个库是JavaMail API的一部分,提供了发送和接收电子邮件的功能。 首先,...
接下来,我们需要创建一个`MimeMessage`对象,并设置必要的邮件属性,如发件人、收件人、主题和正文。然后,我们将通过`MimeBodyPart`和`MimeMultipart`类来处理附件。 关键在于如何以流的形式创建Excel附件。我们...
java发邮件
这个“java发邮件程序”的主题涵盖了JavaMail API的使用,它是Java平台上的标准邮件处理库。下面我们将深入探讨如何使用JavaMail API编写一个简单的邮件发送程序。 首先,你需要在项目中引入JavaMail相关的依赖。...
标签中的“java发邮件”指的是使用Java编程语言发送邮件。在Spring Boot项目中,我们可以引入`spring-boot-starter-mail`依赖来支持邮件服务。在Maven的pom.xml文件中,这可以通过添加以下代码实现: ```xml ...
这个Java发邮件jar包提供的功能可能更加强大,包括支持HTML邮件、添加附件、处理抄送和密送等功能。使用时,请参照官方文档或者提供的示例代码,结合自己的需求进行适当的调整。记住,始终遵循最佳实践,确保发送...
当需要自动发邮件到制定的mail地址时,我们需要这4个jar包 注:如果jar包引用不当,则依然不能发邮件 使用步骤:1、先将jar包放入到ant%home%下的lib文件夹下,比如我的ant%home%是:D:\apache-ant-1.7.0\lib 2、...
java 发邮件工具类 多收件人 多抄送人 多附件 内有三个重载方法 使用方便
"java发邮件包"可能包含以下核心库: 1. **javax.mail.jar**:这是Java Mail API的核心库,提供了邮件操作所需的所有接口和类。 2. **activation.jar**:JavaBeans Activation Framework (JAF)库,用于处理不同类型...
Java 发邮件功能是Java应用程序与外部世界交互的重要方式之一,特别是在自动化通知、系统日志记录或者用户服务中。本文将详细介绍如何使用Java发送邮件,并提供示例代码。 首先,发送邮件需要依赖JavaMail API和...
"java发邮件注册"这个主题涉及到的是利用JavaMail API来实现通过电子邮件进行用户账户的激活过程。以下将详细介绍这一过程中的关键知识点。 首先,我们需要理解JavaMail API。这是一个用于处理邮件的开源库,它允许...
在这个名为“java发邮件依赖jar包.zip”的压缩文件中,包含了两个关键的JAR文件:mail.jar和activation.jar,它们是JavaMail API的核心组成部分。 JavaMail API 是Java平台上的一个开源库,用于处理电子邮件相关的...