`

使用JAVAMAIL 发邮件.

 
阅读更多
发送不带附件的邮件,欢迎大家提意见并扩展成带附件的.

第一部分
:




public class EmailAuthenticator
    extends Authenticator {
    private String username;
    private String password;
    public void check(String usr, String pswd) {
        this.username = usr;
        this.password = pswd;
    }

    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(username, password);
    }
}


第二部分:

/**
*
* <p>Title: 263营帐管理系统</p>
* <p>Description:<b>邮件发送公用类\uFFFD/b>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: ZTEsoft</p>
* @author luo.yanqing
* @version 1.0
*/

public class MailSend {
  private Log log = LogFactory.getLog(getClass());

  private static Properties props = null;

  /*       session object       */
  private static Session mailsession = null;

  /*        mail object         */
  private static MimeMessage mess = null;

  //实际会从配置文件读
  private String sender = ReferenceConst.mailSender;
  private String senderName = ReferenceConst.mailSenderName;
  private String host = ReferenceConst.mailHost;
  private String usr = ReferenceConst.mailUsr;
  private String pwd = ReferenceConst.mailPwd;

  /**
   * 使用默认的发送者和服务器发送邮件
   * @param info String
   * @param subject String
   * @param receiver String
   */
  public StringBuffer sendEmail(String info, String subject, String receiver) {
    //不需要验证
    //sendEmail(host, info, subject, sender, receiver);
    //需要验证
    StringBuffer error = new StringBuffer();
    error = sendEmail(host, usr, pwd, info, subject, sender, receiver);
    return error;
  }

  /**
   * @function 发送邮件的实现(邮件服务器不需要验证)
   * @param server 邮件服务器IP地址
   * @param info 邮件的内容
   * @param subject 邮件的主题
   * @param sender   邮件的发送者
   * @param receiver 邮件的接收者
   * @return null
   */

  public StringBuffer sendEmail(String server, String info, String subject,
                                String sender, String receiver) {
    if (log.isInfoEnabled()) {
      log.info("MailSend.sentEmail(不需验证) start");
    }
    StringBuffer error = new StringBuffer();
    props = new Properties();
    props.put("mail.smtp.host", server);

    mailsession = Session.getDefaultInstance(props, null);

    try {
      MimeMessage mailmess = new MimeMessage(mailsession);
      mailmess.setSubject(subject, "GB2312");
      mailmess.setContent(info, "text/plain;charset=GB2312");

      InternetAddress from = new InternetAddress(sender, senderName, "GB2312");
      mailmess.setFrom(from);

      InternetAddress tod = new InternetAddress(receiver);
      mailmess.setRecipient(Message.RecipientType.TO, tod);
      Transport transport = mailsession.getTransport("smtp");
      //System.out.println("begin connect");
      transport.connect(server, "", "");
      transport.send(mailmess);
      transport.close();
    }
    catch (MessagingException me) {
      if (log.isInfoEnabled()) {
        log.debug("MailSend.sentEmail(不需验证) threw Exception");
        log.debug(me.getMessage());

      }
      error.append("mailsent.error");
    }
    catch (Exception ex) {
      if (log.isInfoEnabled()) {
        log.debug("MailSend.sentEmail(不需验证) threw Exception");
        log.debug(ex.getMessage());
      }
      error.append("mailsent.error");
    }
    if (log.isInfoEnabled()) {
      log.info("MailSend.sentEmail(不需验证) end");
    }
    return error;
  }

  /**
   * @function 发送邮件的实现(邮件服务器需要验证)
   * @param server 邮件服务器IP地址
   * @param usr 邮件服务器用户
   * @param psd 邮件服务器密码
   * @param info 邮件的内容
   * @param subject 邮件的主题
   * @param sender   邮件的发送者
   * @param receiver 邮件的接收者
   * @return null
   */

  public StringBuffer sendEmail(String server, String usr, String psd,
                                String info,
                                String subject, String sender, String receiver) {
    if (log.isInfoEnabled()) {
      log.info("MailSend.sentEmail(需验证) start");
    }
    StringBuffer error = new StringBuffer();
    props = new Properties();
    props.put("mail.smtp.host", server);
    props.put("mail.smtp.auth", "true");
    EmailAuthenticator auth = new EmailAuthenticator();
    auth.check(usr, psd);
    mailsession = Session.getDefaultInstance(props, auth);
    try {
      MimeMessage mailmess = new MimeMessage(mailsession);
      mailmess.setSubject(subject, "GB2312");
      mailmess.setContent(info, "text/plain;charset=GB2312");

      InternetAddress from = new InternetAddress(sender, senderName, "GB2312");
      mailmess.setFrom(from);

      InternetAddress tod = new InternetAddress(receiver);
      mailmess.setRecipient(Message.RecipientType.TO, tod);
      Transport transport = mailsession.getTransport("smtp");
      //System.out.println("begin connect");
      transport.connect(server, "", "");
      transport.send(mailmess);
      transport.close();

    }
    catch (MessagingException me) {
      if (log.isInfoEnabled()) {
        log.debug("MailSend.sentEmail(需验证) threw Exception");
        log.debug(me.getMessage());
      }
      error.append("mailsent.error");
    }
    catch (Exception ex) {
      if (log.isInfoEnabled()) {
        log.debug("MailSend.sendEmail(需验证) threw Exception");
        log.debug(ex.getMessage());
      }
      error.append("mailsent.error");
    }
    if (log.isInfoEnabled()) {
      log.info("MailSend.sendEmail(需验证)end");
    }
    return error;
  }

  /**
   * @function 验证邮件地址的有效性的实现

   * @param strmail 邮件地址 如"ghist@yahoo.com.cn"
   * @return boolean
   * @roseuid 4157E1DD002E
   */

  public boolean mailvaliade(String strmail) {
    if (log.isInfoEnabled()) {
      log.info(" MailSend.mailvaliade start");
    }

    Pattern p = Pattern.compile("\\w+@(\\w+.)+[a-z]{2,3}");
    Matcher m = p.matcher(strmail);
    boolean b = m.matches();
    if (log.isInfoEnabled()) {
      log.info("MailSend.mailvaliade end");
    }

    return b;

  }

}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    基于Javamail的邮件收发系统.zip

    基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件收发系统.zip基于Javamail的邮件...

    使用JAVAMail代发邮件

    使用 JavaMail 代发邮件 使用 JavaMail 库可以轻松地在 Java 应用程序中发送电子邮件。JavaMail 是一个 Java API,用于在 Java 应用程序中发送和接收电子邮件。它提供了一个抽象层,允许开发者使用不同的电子邮件...

    javamail发送邮件.zip

    这个“javamail发送邮件.zip”压缩包显然包含了一个示例项目,演示如何使用JavaMail API发送包含正文文本、图片以及附件的邮件。以下是对这个主题的详细解释: 1. **JavaMail API**: JavaMail API 是一组接口和类...

    ant-javamail-1.6.jar.zip

    例如,你可以使用`&lt;mail&gt;`任务来设置发件人、收件人、主题、正文等信息,并直接在Ant脚本中发送邮件。这在自动化测试、部署通知、错误报告等方面非常实用。同时,ant.license.txt文件则包含了Ant-Javamail库的许可...

    ant-javamail-1.6.4.jar.zip

    JavaMail使得开发者能够轻松地在Java应用程序中集成邮件功能,如发送HTML邮件、处理附件、使用SMTP、POP3和IMAP协议等。 "ant-javamail-1.6.4.jar"是Ant与JavaMail整合的一个组件,它是Ant的一个扩展,为Ant任务...

    javamail邮件开发.rar

    javamail邮件开发.rar中包含apache-james-3.0-beta4-app服务器程序包和用于解决jdk7以上jar包冲突的jar包jaxb-impl-2.1.3.jar。开源工具commons-email-1.4.jar(这个其实也没什么用,因为使用maven添加依赖会自动...

    ant-javamail.jar.zip

    通过理解Ant和JavaMail的基本概念,以及它们如何在"ant-javamail.jar.zip"中结合使用,开发者可以更高效地实现自动化邮件功能,提升项目管理效率。对于任何Java项目,特别是那些需要进行邮件通信的项目,掌握这些...

    javamail.jar.zip

    JavaMail是一个广泛使用的开源库,用于在Java应用程序中处理电子邮件通信。这个压缩包"javamail.jar.zip"包含了几个关键的组件,可以帮助开发者实现在Java环境中发送和接收邮件的功能。让我们详细了解一下这些组件...

    ant-javamail-1.6.1.jar.zip

    例如,可以创建一个Ant任务来配置邮件服务器信息,设置发件人、收件人、主题和正文,并发送带有附件的邮件。 `ant.license.txt`文件则是Apache Ant的许可协议,它详细规定了使用Ant和其相关组件的法律条款。通常,...

    ant-javamail-1.6.2.jar.zip

    《Ant-JavaMail 1.6.2:构建与邮件通信的高效工具》 在Java开发领域,Apache Ant和JavaMail是两个不可或缺的组件。Ant是Apache软件基金会的一个项目,它是一个基于Java的构建工具,类似于Perl语言的Make工具,主要...

    SSM框架+Javamail发送邮件.pdf

    在本文中,我们将深入探讨如何使用SSM框架(Spring4.0+SpringMVC+Mybatis)集成Javamail来实现邮件发送功能。首先,我们需要理解SMTP协议和SSL加密在电子邮件传输中的作用。 SMTP(Simple Mail Transfer Protocol)...

    ant-javamail-1.6.3.jar.zip

    总结来说,`ant-javamail-1.6.3.jar.zip`是一个包含Apache Ant邮件任务支持的库,通过JavaMail实现邮件发送功能。开发者可以利用这个库轻松地在构建流程中集成邮件通信,提高工作效率。同时,理解和使用`ant-...

    SSM框架+Javamail发送邮件.docx

    \n\n要使用JavaMail发送邮件,首先需要在项目中引入JavaMail的依赖库。可以通过Maven或Gradle等构建工具添加对应的jar包。在本例中,可以从CSDN等资源网站下载并添加到项目的类路径下。\n\n为了启用SMTP服务,需要在...

    javamail-1.4.4.jar包

    1. **SMTP(Simple Mail Transfer Protocol)支持**:JavaMail 使用SMTP协议来发送邮件,这是互联网上最常用的邮件传输协议。 2. **POP3(Post Office Protocol version 3)和IMAP4(Internet Message Access ...

    使用javaMail发邮件及收取邮箱未读邮件并标记为已读

    在这个资源中,我们将探讨如何使用 JavaMail 实现邮件的发送、接收、查看邮件数量以及未读邮件的标记为已读。 首先,让我们从发送邮件开始。在 JavaMail 中,你需要创建一个 `Session` 对象来配置邮件服务器的连接...

    ant-javamail-1.6.5.jar.zip

    《Ant-JavaMail 1.6.5:构建与邮件通信的高效工具》 在Java开发领域,Apache Ant和JavaMail是两个不可或缺的组件。"ant-javamail-1.6.5.jar.zip"是一个包含这两部分的压缩包,为开发者提供了便捷的构建和邮件通信...

    java发邮件 javamail +mail.jar

    在JSP(JavaServer Pages)环境中,JavaMail同样可以使用,但需要考虑在服务器端执行邮件发送操作,因为JSP主要用于生成动态网页内容,而邮件发送是服务器端的任务。 总结来说,JavaMail结合`mail.jar`库提供了一种...

    javamail收发邮件加密和不加密

    JavaMail 是一个强大的开源库,用于在Java应用程序中处理电子邮件。它支持多种协议,包括POP3、IMAP和SMTP,这些协议分别用于接收、检索和发送邮件。在使用JavaMail时,了解如何进行加密和非加密通信对于确保数据...

    javaMail 发邮件

    这个例子展示了如何使用JavaMail发送带附件的邮件。需要注意的是,实际应用中应处理各种异常,确保邮件发送的健壮性。此外,如果你的邮件服务器需要身份验证,还需要提供一个Authenticator来处理登录信息。 总的来...

    javamail 1.4.3 mail.jar 1.4.3 jar 包+源代码下载 天涯浪子

    5. **事件驱动模型**:JavaMail 使用JavaBeans Activation Framework (JAF) 实现事件驱动模型,可以监听邮件状态的变化,例如新邮件到达、邮件已读等。 6. **国际化**:JavaMail 支持多种语言,便于创建多语言的...

Global site tag (gtag.js) - Google Analytics