广

Java编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    Java邮件发送程序(可以同时发给多个地址、可以带附件)

    2018-11-02 13:12:56 次阅读 稿源:互联网
    零七广告
    发送邮件的主程序

    import java.util.Properties;
    import common.util.Email_Autherticatorbean;
    import javax.mail.Authenticator;
    import javax.mail.internet.InternetAddress;
    import org.apache.commons.lang.StringUtils;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.Multipart;
    import javax.activation.FileDataSource;
    import javax.mail.internet.MimeMultipart;
    import javax.activation.DataHandler;
    import javax.mail.internet.MimeUtility;
    import java.util.Date;

    /**
    * 利用java.mail的邮件发送程序
    */

    public class SendMailTest
    {
      public static void main(String[] args)
      {
        String title = "titleTest";//所发送邮件的标题
        String from ="sir_znp@163.com";//从那里发送
        String sendTo[] = {"znp@163.net","sir_znp@163.com"};//发送到那里
        //邮件的文本内容,可以包含html标记则显示为html页面
        String content = "mail test!!!!!!<br><a href=#>aaa</a>";
        //所包含的附件,及附件的重新命名
        String fileNames[] = {"F://music//text1.txt,text1.txt","F://music//text2.txt,text2.txt"};
        try {
        //  MailSender mailsender = new MailSender();
          sendmail(title, from, sendTo, content, fileNames,"text/html;charset=gb2312");
          } catch (Exception ex) { ex.printStackTrace(); }
      }

      public static void sendmail(String subject, String from, String[] to, String text, String[] filenames,String mimeType) throws Exception
      {
        //ResourceBundle mailProps = ResourceBundle.getBundle("mail");   可以从配置文件读取相应的参数
        Properties props = new Properties();

        String smtp = "smtp.163.com";  //设置发送邮件所用到的smtp
        String servername = "sir_znp";
        String serverpaswd = "123";

        javax.mail.Session mailSession; //邮件会话对象
        javax.mail.internet.MimeMessage mimeMsg; //MIME邮件对象

        props = java.lang.System.getProperties(); //获得系统属性对象
        props.put("mail.smtp.host", smtp); //设置SMTP主机
        props.put("mail.smtp.auth", "true"); //是否到服务器用户名和密码验证
        //到服务器验证发送的用户名和密码是否正确
        Email_Autherticatorbean myEmailAuther = new Email_Autherticatorbean(servername, serverpaswd);
        //设置邮件会话
        mailSession = javax.mail.Session.getInstance(props, (Authenticator) myEmailAuther); 
        //设置传输协议
        javax.mail.Transport transport = mailSession.getTransport("smtp");
        //设置from、to等信息
        mimeMsg = new javax.mail.internet.MimeMessage(mailSession);
        if (!StringUtils.isEmpty(from))
           {
             InternetAddress sentFrom = new InternetAddress(from);
             mimeMsg.setFrom(sentFrom);  //设置发送人地址
           }

        InternetAddress[] sendTo = new InternetAddress[to.length];
        for (int i = 0; i < to.length; i++)
           {
             System.out.println("发送到:" + to[i]);
             sendTo[i] = new InternetAddress(to[i]);
           }

        mimeMsg.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO, sendTo);
        mimeMsg.setSubject(subject, "gb2312");

        MimeBodyPart messageBodyPart1 = new MimeBodyPart();
        //messageBodyPart.setText(UnicodeToChinese(text));
        messageBodyPart1.setContent(text, mimeType);

        Multipart multipart = new MimeMultipart();//附件传输格式
        multipart.addBodyPart(messageBodyPart1);

        for (int i = 0; i < filenames.length; i++) {
          MimeBodyPart messageBodyPart2 = new MimeBodyPart();
          //选择出每一个附件名
          String filename = filenames[i].split(",")[0];
          System.out.println("附件名:" + filename);
          String displayname = filenames[i].split(",")[1];
          //得到数据源
          FileDataSource fds = new FileDataSource(filename);
          //得到附件本身并至入BodyPart
          messageBodyPart2.setDataHandler(new DataHandler(fds));
          //得到文件名同样至入BodyPart
          //messageBodyPart2.setFileName(displayname);
          // messageBodyPart2.setFileName(fds.getName());
          messageBodyPart2.setFileName(MimeUtility.encodeText(displayname));
          multipart.addBodyPart(messageBodyPart2);
        }
        mimeMsg.setContent(multipart);
        //设置信件头的发送日期
        mimeMsg.setSentDate(new Date());
        mimeMsg.saveChanges();
        //发送邮件
        transport.send(mimeMsg);
        transport.close();
      }



    验证类
    package common.util;
    import javax.mail.Authenticator;
    import javax.mail.PasswordAuthentication;
    public class Email_Autherticatorbean  extends Authenticator
    {
    private String m_username = null;
    private String m_userpass = null;

    public void setUsername(String username)
    {
    m_username = username;
    }

    public void setUserpass(String userpass)
    {
    m_userpass = userpass;
    }

    public Email_Autherticatorbean(String username, String userpass)
    {
       super();
       setUsername(username);
       setUserpass(userpass);

    }
    public PasswordAuthentication getPasswordAuthentication()
    {

      return new PasswordAuthentication(m_username,m_userpass);
    }

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告