`

mail

 
阅读更多

 

public class SendMail {
 private Log log=LogFactory.getLog(this.getClass().getName());
 
    //收件人地址(如多人发送则用逗号隔开)
    private String mailTo = null;
    //发送人地址
    private String mailFrom = null;
   
    //SMTP主机地址   
    private String smtpHost = null;
    //是否采用调试方式
    private boolean debug = false;
    //登陆SMTP服务器的用户名和密码
    private String smtpUser=null;
    private String smtpPassword=null;
 
    private String messageBasePath = null;
    //Mail主题
    private String subject;
    //Mail内容
    private String msgContent;
 
    private Vector attachedFileList;
    private String messageContentMimeType ="text/html; charset=gb2312";
 
    //抄送人地址、密送人地址
    private String mailccTo = null;
    private String mailbccTo = null;
   
    public SendMail() {
    }
 
    private void fillMail(MimeMessage msg) throws Exception {
   
        String fileName = null;
        
        if (mailFrom != null) {
            msg.setFrom(new InternetAddress(mailFrom));
        } else {
            throw new Exception("Addresser was not maintained!");
        }
       
        if (mailTo != null) {
            InternetAddress[] address = InternetAddress.parse(mailTo);
            msg.setRecipients(Message.RecipientType.TO, address);
        } else {
         throw new Exception("Addresser was not maintained!");
        }
   
        if (mailccTo != null) {
            InternetAddress[] ccaddress = InternetAddress.parse(mailccTo);
            msg.setRecipients(Message.RecipientType.CC, ccaddress);
        }
        if (mailbccTo != null) {
            InternetAddress[] bccaddress = InternetAddress.parse(mailbccTo);
            msg.setRecipients(Message.RecipientType.BCC, bccaddress);
        }
       
        //加入主题
        msg.setSubject(subject);
       
        //加入内容
        Multipart mPart = new MimeMultipart();
       
        MimeBodyPart mBodyContent = new MimeBodyPart();
        if (msgContent != null)
            mBodyContent.setContent(msgContent, messageContentMimeType);
        else
            mBodyContent.setContent("", messageContentMimeType);
        mPart.addBodyPart(mBodyContent);
       
        //加入附件
        if (attachedFileList != null) {
            for (Enumeration fileList = attachedFileList.elements(); fileList.hasMoreElements();) {
                fileName = (String) fileList.nextElement();
                MimeBodyPart mBodyPart = new MimeBodyPart();    
               
                FileDataSource fds = new FileDataSource(messageBasePath + fileName);
                mBodyPart.setDataHandler(new DataHandler(fds));
                mBodyPart.setFileName(fileName);
                mPart.addBodyPart(mBodyPart);
            }
        }

        msg.setContent(mPart);
    }
   
    /**
     * 发送邮件
     * @return true表成功,false为失败
     * @throws Exception
     */
    public boolean sendMail(){
        Properties props = System.getProperties();
        props.put("mail.smtp.host", smtpHost);
        props.put("mail.smtp.auth", "true");
   
        MailAuthenticator auth = new MailAuthenticator();
        MailAuthenticator.MAIL_USER=smtpUser;
        MailAuthenticator.MAIL_PASSWORD=smtpPassword;
        Session session = Session.getInstance(props, auth);
        session.setDebug(debug);
       
        MimeMessage msg = new MimeMessage(session);
        Transport trans = null;
        try {
   
            fillMail(msg);
            trans = session.getTransport("smtp");
            try {
                trans.connect(smtpHost, smtpUser, smtpPassword);
            } catch (AuthenticationFailedException e) {
             log.error("Connection to mail server failed",e);
             throw e;
            } catch (MessagingException e) {
             log.error("Connection to mail server failed",e);
             throw e;
            }
   
            Transport.send(msg);
            return true;
   
        } catch (MessagingException mex) {
         log.error("",mex);
            Exception ex = null;
            if ((ex = mex.getNextException()) != null) {
                log.error(ex);
            }           
            return false;
        }catch(Exception ex){
         log.error("",ex);
         return false;
        }finally {
            try {
                if (trans != null && trans.isConnected())
                    trans.close();
            } catch (Exception e) {
             log.error("",e);
            }
        }
    }
   
    public void setAttachedFileList(java.util.Vector filelist)
    {
        attachedFileList = filelist;
    }
    public void setDebug(boolean debugFlag)
    {
        debug=debugFlag;
    }
    public void setMailAccount(String strAccount) {
    }
    public void setMailbccTo(String bccto) {
        mailbccTo = bccto;
    }
    public void setMailccTo(String ccto) {
        mailccTo = ccto;
    }
    public void setMailFrom(String from)
    {
        mailFrom=from;
    }
    public void setMailPass(String strMailPass) {
    }
    public void setMailTo(String to)
    {
        mailTo=to;
    }
    public void setMessageBasePath(String basePath)
    {
        messageBasePath=basePath;
    }
    public void setMessageContentMimeType(String mimeType)
    {
        messageContentMimeType = mimeType;
    }
    public void setMsgContent(String content)
    {
        msgContent=content;
    }
    public void setSMTPHost(String host)
    {
        smtpHost=host;
    }
    public void setSubject(String sub)
    {
        subject=sub;
    }
   
   
    public static void main(String[] argv) throws Exception
    {
        for(int i = 0;i<2;i++) {
        SendMail sm = new SendMail();
        sm.setSMTPHost("");
        sm.setMailFrom("");
        //sm.setMailTo("");
        sm.setMailTo("");
        sm.setMsgContent("自动邮件内容");
        sm.setSubject("标题");
        sm.sendMail();
        }
    }

 public void setSmtpPassword(String smtpPassword) {
  this.smtpPassword = smtpPassword;
 }

 public void setSmtpUser(String smtpUser) {
  this.smtpUser = smtpUser;
 }

}

class MailAuthenticator extends Authenticator
{
    //******************************
    //由于发送邮件的地方比较多,
    //下面统一定义用户名,口令.
    //******************************
    public static String MAIL_USER;
    public static String MAIL_PASSWORD;
 
 
    public MailAuthenticator()
    {
    }
 
    protected PasswordAuthentication getPasswordAuthentication()
    {
        return new PasswordAuthentication(MAIL_USER, MAIL_PASSWORD);
    }
 
}

分享到:
评论

相关推荐

    javax.mail-1.4.4.jar

    通过java扩展包javax.mail-1.4.4.jar实现邮件发送功能。 import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart...

    javax.mail-1.5.6-API文档-中文版.zip

    赠送jar包:javax.mail-1.5.6.jar; 赠送原API文档:javax.mail-1.5.6-javadoc.jar; 赠送源代码:javax.mail-1.5.6-sources.jar; 赠送Maven依赖信息文件:javax.mail-1.5.6.pom; 包含翻译后的API文档:javax.mail...

    jakarta.mail-1.6.7-API文档-中英对照版.zip

    赠送jar包:jakarta.mail-1.6.7.jar; 赠送原API文档:jakarta.mail-1.6.7-javadoc.jar; 赠送源代码:jakarta.mail-1.6.7-sources.jar; 赠送Maven依赖信息文件:jakarta.mail-1.6.7.pom; 包含翻译后的API文档:...

    javax.mail-1.6.2-API文档-中英对照版.zip

    赠送jar包:javax.mail-1.6.2.jar; 赠送原API文档:javax.mail-1.6.2-javadoc.jar; 赠送源代码:javax.mail-1.6.2-sources.jar; 赠送Maven依赖信息文件:javax.mail-1.6.2.pom; 包含翻译后的API文档:javax.mail...

    javax.mail-1.5.6-API文档-中英对照版.zip

    赠送jar包:javax.mail-1.5.6.jar; 赠送原API文档:javax.mail-1.5.6-javadoc.jar; 赠送源代码:javax.mail-1.5.6-sources.jar; 赠送Maven依赖信息文件:javax.mail-1.5.6.pom; 包含翻译后的API文档:javax.mail...

    jakarta.mail-1.6.7-API文档-中文版.zip

    赠送jar包:jakarta.mail-1.6.7.jar 赠送原API文档:jakarta.mail-1.6.7-javadoc.jar 赠送源代码:jakarta.mail-1.6.7-sources.jar 包含翻译后的API文档:jakarta.mail-1.6.7-javadoc-API文档-中文(简体)版.zip ...

    mail-1.5.0-b01-API文档-中文版.zip

    赠送jar包:mail-1.5.0-b01.jar; 赠送原API文档:mail-1.5.0-b01-javadoc.jar; 赠送源代码:mail-1.5.0-b01-sources.jar; 赠送Maven依赖信息文件:mail-1.5.0-b01.pom; 包含翻译后的API文档:mail-1.5.0-b01-...

    mail1.5.4版本jar包

    《Android邮件发送:mail1.5.4版本jar包详解》 在移动应用开发中,尤其是在Android平台上,发送邮件是一项常见的需求。为了实现这一功能,开发者通常会借助于各种库和框架,其中JavaMail API是一个广泛使用的解决...

    javax.mail.jar下载

    在Java编程环境中,`javax.mail.jar` 是一个非常重要的库,它提供了用于发送和接收电子邮件的API。这个库是JavaMail API的一部分,主要用于处理SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP(因特网消息...

    Java mail-1.4.7 jar包

    Java Mail 是一个开源的Java库,它为Java应用程序提供了与各种邮件系统交互的能力。这个"mail-1.4.7.jar"是Java Mail的一个版本,主要用于处理电子邮件的发送和其他相关功能。版本号1.4.7表明这是一个较旧但稳定版本...

    基于Maven的javax.mail发送邮件例子程序

    基于Maven的javax.mail发送邮件例子程序 pom.xml添加依赖jar: &lt;groupId&gt;javax.mail &lt;artifactId&gt;mail ${javamail.version} &lt;/dependency&gt; &lt;javamail.version&gt;1.4.1 /* 功能:加入了参考文章中没有...

    javax.mail-1.6.2_javamailjar1.6.2_javamail-1.6.2_javax.mail_java

    `javax.mail-1.6.2_javamailjar1.6.2_javamail-1.6.2_javax.mail_java` 这个标题暗示了我们正在讨论的是 JavaMail 的 1.6.2 版本,这是一个稳定且广泛使用的版本。 JavaMail API 提供了一套标准的接口,用于与邮件...

    Mail api Mail apiMail api

    【Mail API】是一种用于发送、接收和管理电子邮件的软件接口,它允许开发人员在应用程序中集成邮件功能。Mail API使得用户无需离开应用就能处理邮件,为开发者提供了方便且高效的工具来构建邮件相关的功能,如注册...

    javax.mail-1.6.0.jar包及移入maven仓库语句

    在Java开发中,`javax.mail`库是一个非常重要的组件,主要用于处理电子邮件的发送与接收。这个库提供了丰富的API,使得开发者能够轻松地实现邮件服务的功能。`javax.mail-1.6.0.jar`是该库的一个特定版本,包含了...

    Win7启用内置Windows Mail(32+64)

    原本Vista系统拥有的Windows Mail邮件客户端,在Win7中已经被微软阉割了(其实是隐藏了起来)。如果你想恢复Windows Mail邮件客户端,该如何操作呢?方法很简单,只要将Vista中的msoe.dll文件覆盖Win7的的“&ccedil;...

    mail.jar&activation.jar

    Mail.jar 文件通常包含了JavaMail的核心组件,提供了对SMTP、POP3、IMAP等邮件协议的支持。 而activation.jar是JavaBeans Activation Framework (JAF)的一部分,它是Java平台的标准组件,用于处理和识别不同的数据...

    Mail 错误com/sun/mail/util/LineInputStream。javaee.jar 开发包

    该开发包是解决 JavaMail 发送邮件报错:java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误 ava.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 使用方法: 将javaee.jar ...

    mail.jar包

    `mail.jar`是这个过程中必不可少的一个组件,尤其在处理Spring发送邮件的功能时。本文将深入探讨`mail.jar`的作用,以及它如何与Spring框架集成,帮助开发者实现邮件服务。 `mail.jar`是一个JavaMail API的实现,它...

    linux 第十二讲 mail服务器配置与管理

    Linux Mail服务器配置与管理是系统管理员必须掌握的关键技能之一,特别是在企业环境中,电子邮件通信是日常工作的核心。Sendmail是一款广泛使用的邮件传输代理软件,适用于多种Linux发行版,包括Red Hat Enterprise ...

    JavaMail发送邮件 所需activation.jar与javax.mail.jar

    在JavaMail中,`activation.jar`和`javax.mail.jar`是两个非常重要的组件,它们是JavaMail功能实现的核心依赖。 首先,`activation.jar`是JavaBeans Activation Framework (JAF)的一部分,它主要用于处理MIME类型的...

Global site tag (gtag.js) - Google Analytics