• 使用java向邮箱发送邮件


     这是我很早之前写的一个工具类,最近在整理自己所学的东西,无意中找到了,就拿出来与大家分享,代码如下:

    import java.io.ByteArrayOutputStream;   
    import java.io.FileInputStream;   
    import java.io.IOException;   
    import java.util.Arrays;   
    import java.util.Date;   
    import java.util.Properties;   
      
    
    
    
    import javax.activation.DataHandler;   
    import javax.activation.FileDataSource;   
    import javax.mail.Authenticator;   
    import javax.mail.Message;   
    import javax.mail.PasswordAuthentication;   
    import javax.mail.Session;   
    import javax.mail.Transport;   
    import javax.mail.internet.InternetAddress;   
    import javax.mail.internet.MimeMessage;   
      
    import javax.mail.BodyPart;   
    import javax.mail.Multipart;   
    import javax.mail.internet.MimeBodyPart;   
    import javax.mail.internet.MimeMultipart;   
    
    import org.apache.struts.util.MessageResources;
    
    import com.qq.connect.javabeans.tenpay.Address;
    
    //import com.sun.istack.internal.ByteArrayDataSource;  
    public class SendMails {
           public  int sendMail(String emailTitle, String content, String emailTo,MessageResources message) throws Exception {
            System.out.println(smtpServer1);
            Properties props = new Properties();   
            props.put("mail.smtp.auth", "true"); 
            props.put( "mail.transport.protocol", "smpt");
            props.put("mail.smtp.host", smtpServer1);
            // 获得邮件会话对象   
            Session session = Session.getInstance(props,new SmtpAuthenticator1(fromMailAddress1, password1));  
            /** *************************************************** */  
            // 创建MIME邮件对象   
            MimeMessage mimeMessage = new MimeMessage(session);   
            mimeMessage.setFrom(new InternetAddress(fromMailAddress1));// 发件人   
            mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(emailTo));// 收件人   
            mimeMessage.setSubject(emailTitle);   
            mimeMessage.setSentDate(new Date());// 发送日期   
            Multipart mp = new MimeMultipart("related");// related意味着可以发送html格式的邮件   
            /** *************************************************** */  
            BodyPart bodyPart = new MimeBodyPart();// 正文   
           StringBuffer content = new StringBuffer();  
             bodyPart.setDataHandler(new DataHandler(content.toString(),"text/html;charset=GBK"));// 网页格式   
                   /** *************************************************** */  
    //        BodyPart attachBodyPart = new MimeBodyPart();// 普通附件   
    //        FileDataSource fds = new FileDataSource("c:/boot.ini");   
    //        attachBodyPart.setDataHandler(new DataHandler(fds));   
    //        attachBodyPart.setFileName("=?GBK?B?"+ new sun.misc.BASE64Encoder().encode(fds.getName().getBytes()) + "?=");// 解决附件名中文乱码   
    //        mp.addBodyPart(attachBodyPart);   
            /** *************************************************** */  
    //        MimeBodyPart imgBodyPart = new MimeBodyPart(); // 附件图标   
    //        byte[] bytes = readFile("E:/webcms/webcms/WebContent/images/bjx.jpg");   
    //        ByteArrayDataSource fileds = new ByteArrayDataSource(bytes,"application/octet-stream");   
    //        imgBodyPart.setDataHandler(new DataHandler(fileds));   
    //        imgBodyPart.setFileName("button.gif");   
    //        imgBodyPart.setHeader("Content-ID", "<IMG1></IMG1>");// 在html中使用该图片方法src="cid:IMG1"   
    //        mp.addBodyPart(imgBodyPart);   
            /** *************************************************** */  
            mp.addBodyPart(bodyPart);
            mimeMessage.setContent(mp);//设置邮件内容对象
            try {
                Transport.send(mimeMessage);//发送邮件
    //            Transport transport=session.getTransport();
    //            transport.send(mimeMessage);
    } catch (Exception e) {
    //     e.printStackTrace();
    if(e.getMessage().contains("550 User not found")){
    return 2;
    }else{
    return 3;
    }
    }
            //system.out.println("SendEmail OK!!");
            return 0;
        }  
    public void setUsername1(String username1) {
    this.username1 = username1;
    }
    public void setPassword1(String password1) {
    this.password1 = password1;
    }
    public void setSmtpServer1(String smtpServer1) {
    this.smtpServer1 = smtpServer1;
    }
    
    public void setFromMailAddress1(String fromMailAddress1) {
    this.fromMailAddress1 = fromMailAddress1;
    }
     public static byte[] readFile(String file) {   
            FileInputStream fis = null;   
            ByteArrayOutputStream bos = null;   
            try {   
                fis = new FileInputStream(file);   
                bos = new ByteArrayOutputStream();   
                int bytesRead;   
                byte buffer[] = new byte[1024 * 1024];   
                while ((bytesRead = fis.read(buffer)) != -1) {   
                    bos.write(buffer, 0, bytesRead);   
                    Arrays.fill(buffer, (byte) 0);   
                }   
            } catch (IOException e1) {   
                e1.printStackTrace();   
            } finally {   
                try {   
                    if (bos != null)   
                        bos.close();   
                } catch (IOException e) {   
                    e.printStackTrace();   
                }   
            }   
            return bos.toByteArray();   
        } 
    }
    /**  
     * Smtp认证  
     */  
    class SmtpAuthenticator1 extends Authenticator {   
        String username = null;   
        String password = null;   
      
        // SMTP身份验证   
        public SmtpAuthenticator1(String username, String password) {   
            this.username = username;   
            this.password = password;   
            System.out.println(username+"::::::"+password);
        }   
      
        public PasswordAuthentication getPasswordAuthentication() {   
            return new PasswordAuthentication(this.username, this.password);   
        }   
    
    }
  • 相关阅读:
    深入理解JavaScript闭包
    冒泡排序
    Objective-C中的self和super
    IOS中UIKit——UIButton的背景图像无法正常显示的原因
    IOS绘图——简单三角形
    NSDateFormatter中时间格式串的含义
    IOS屏幕布局
    IOS学习感想
    WWDC————苹果全球开发者大会
    刚开始学IOS遇到的类和方法
  • 原文地址:https://www.cnblogs.com/dtj007/p/5113765.html
Copyright © 2020-2023  润新知