`

javamail发邮件(带附件)

阅读更多
import java.util.Properties;

public class MailInfo {
	private String mailServerHost;// 服务器ip  
    private String mailServerPort;// 端口  
    private String fromAddress;// 发送者的邮件地址  
    private String toAddress;// 邮件接收者地址  
    private String username;// 登录邮件发送服务器的用户名  
    private String password;// 登录邮件发送服务器的密码  
    private boolean validate = false;// 是否需要身份验证  
    private String subject;// 邮件主题  
    private String content;// 邮件内容  
    private String[] attachFileNames;// 附件名称  
      
    public Properties getProperties() {  
        Properties p = new Properties();  
        p.put("mail.smtp.host", this.mailServerHost);  
        p.put("mail.smtp.port", this.mailServerPort);  
        p.put("mail.smtp.auth", validate ? "true" : "false");  
        return p;  
    }  
  
    public String getMailServerHost() {  
        return mailServerHost;  
    }  
  
    public void setMailServerHost(String mailServerHost) {  
        this.mailServerHost = mailServerHost;  
    }  
  
    public String getMailServerPort() {  
        return mailServerPort;  
    }  
  
    public void setMailServerPort(String mailServerPort) {  
        this.mailServerPort = mailServerPort;  
    }  
  
    public String getFromAddress() {  
        return fromAddress;  
    }  
  
    public void setFromAddress(String fromAddress) {  
        this.fromAddress = fromAddress;  
    }  
  
    public String getToAddress() {  
        return toAddress;  
    }  
  
    public void setToAddress(String toAddress) {  
        this.toAddress = toAddress;  
    }  
  
    public String getUsername() {  
        return username;  
    }  
  
    public void setUsername(String username) {  
        this.username = username;  
    }  
  
    public String getPassword() {  
        return password;  
    }  
  
    public void setPassword(String password) {  
        this.password = password;  
    }  
  
    public boolean isValidate() {  
        return validate;  
    }  
  
    public void setValidate(boolean validate) {  
        this.validate = validate;  
    }  
  
    public String getSubject() {  
        return subject;  
    }  
  
    public void setSubject(String subject) {  
        this.subject = subject;  
    }  
  
    public String getContent() {  
        return content;  
    }  
  
    public void setContent(String content) {  
        this.content = content;  
    }  
  
    public String[] getAttachFileNames() {  
        return attachFileNames;  
    }  
  
    public void setAttachFileNames(String[] attachFileNames) {  
        this.attachFileNames = attachFileNames;  
    }  
}




import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

public class MyAuthenticator extends Authenticator {
	   private String username = null;  
	    private String password = null;  
	  
	    public MyAuthenticator() {  
	    };  
	  
	    public MyAuthenticator(String username, String password) {  
	        this.username = username;  
	        this.password = password;  
	    }  
	  
	    protected PasswordAuthentication getPasswordAuthentication() {  
	        return new PasswordAuthentication(username, password);  
	    }  
}


import java.io.File;  
import java.util.Date;  
import java.util.Properties;  
  
import javax.activation.DataHandler;  
import javax.activation.FileDataSource;  
import javax.mail.Address;  
import javax.mail.Message;  
import javax.mail.Multipart;  
import javax.mail.Session;  
import javax.mail.Transport;  
import javax.mail.internet.InternetAddress;  
import javax.mail.internet.MimeBodyPart;  
import javax.mail.internet.MimeMessage;  
import javax.mail.internet.MimeMultipart;  
public class SimpleMail {
    // 以文本格式发送邮件  
    public static boolean sendTextMail(MailInfo mailInfo) {       
        //判断是否需要身份认证  
        MyAuthenticator authenticator = null;  
        Properties properties = mailInfo.getProperties();  
        if (mailInfo.isValidate()) {  
            //如果需要身份认证,则创建一个密码验证器  
            authenticator = new MyAuthenticator(mailInfo.getUsername(), mailInfo.getPassword());  
        }  
          
        //根据邮件会话属性和密码验证器构造一个发送邮件的session  
        Session sendMailSession = Session.getDefaultInstance(properties, authenticator);  
        try {  
            Message mailMessage = new MimeMessage(sendMailSession);//根据session创建一个邮件消息   
            Address from = new InternetAddress(mailInfo.getFromAddress());//创建邮件发送者地址  
            mailMessage.setFrom(from);//设置邮件消息的发送者  
            Address to = new InternetAddress(mailInfo.getToAddress());//创建邮件的接收者地址  
            mailMessage.setRecipient(Message.RecipientType.TO, to);//设置邮件消息的接收者  
            mailMessage.setSubject(mailInfo.getSubject());//设置邮件消息的主题  
            mailMessage.setSentDate(new Date());//设置邮件消息发送的时间  
            //mailMessage.setText(mailInfo.getContent());//设置邮件消息的主要内容  
              
            //MimeMultipart类是一个容器类,包含MimeBodyPart类型的对象  
            Multipart mainPart = new MimeMultipart();  
            MimeBodyPart messageBodyPart = new MimeBodyPart();//创建一个包含附件内容的MimeBodyPart  
            //设置HTML内容  
            messageBodyPart.setContent(mailInfo.getContent(),"text/html; charset=utf-8");  
            mainPart.addBodyPart(messageBodyPart);  
  
            //存在附件  
            String[] filePaths = mailInfo.getAttachFileNames();  
            if (filePaths != null && filePaths.length > 0) {  
                for(String filePath:filePaths){  
                    messageBodyPart = new MimeBodyPart();  
                    File file = new File(filePath);   
                    if(file.exists()){//附件存在磁盘中  
                        FileDataSource fds = new FileDataSource(file);//得到数据源  
                        messageBodyPart.setDataHandler(new DataHandler(fds));//得到附件本身并至入BodyPart  
                        messageBodyPart.setFileName(file.getName());//得到文件名同样至入BodyPart  
                        mainPart.addBodyPart(messageBodyPart);  
                    }  
                }  
            }  
              
            //将MimeMultipart对象设置为邮件内容     
            mailMessage.setContent(mainPart);  
            Transport.send(mailMessage);//发送邮件  
            return true;  
        } catch (Exception e) {  
            e.printStackTrace();    
        }  
        return false;  
    }     
      
    // 以HTML格式发送邮件   
    public static boolean sendHtmlMail(MailInfo mailInfo) {       
        //判断是否需要身份认证  
        MyAuthenticator authenticator = null;  
        Properties properties = mailInfo.getProperties();  
        if (mailInfo.isValidate()) {  
            // 如果需要身份认证,则创建一个密码验证器  
            authenticator = new MyAuthenticator(mailInfo.getUsername(), mailInfo.getPassword());  
        }  
  
        // 根据邮件会话属性和密码验证器构造一个发送邮件的session  
        Session sendMailSession = Session.getDefaultInstance(properties, authenticator);  
        try{  
            Message mailMessage = new MimeMessage(sendMailSession);//根据session创建一个邮件消息   
            Address from = new InternetAddress(mailInfo.getFromAddress());//创建邮件发送者地址  
            mailMessage.setFrom(from);//设置邮件消息的发送者  
            Address to = new InternetAddress(mailInfo.getToAddress());//创建邮件的接收者地址  
            mailMessage.setRecipient(Message.RecipientType.TO, to);//设置邮件消息的接收者  
            mailMessage.setSubject(mailInfo.getSubject());//设置邮件消息的主题  
            mailMessage.setSentDate(new Date());//设置邮件消息发送的时间  
              
            //MimeMultipart类是一个容器类,包含MimeBodyPart类型的对象  
            Multipart mainPart = new MimeMultipart();  
            MimeBodyPart messageBodyPart = new MimeBodyPart();//创建一个包含HTML内容的MimeBodyPart  
            //设置HTML内容  
            messageBodyPart.setContent(mailInfo.getContent(),"text/html; charset=utf-8");  
            mainPart.addBodyPart(messageBodyPart);  
              
            //存在附件  
            String[] filePaths = mailInfo.getAttachFileNames();  
            if (filePaths != null && filePaths.length > 0) {  
                for(String filePath:filePaths){  
                    messageBodyPart = new MimeBodyPart();  
                    File file = new File(filePath);   
                    if(file.exists()){//附件存在磁盘中  
                        FileDataSource fds = new FileDataSource(file);//得到数据源  
                        messageBodyPart.setDataHandler(new DataHandler(fds));//得到附件本身并至入BodyPart  
                        messageBodyPart.setFileName(file.getName());//得到文件名同样至入BodyPart  
                        mainPart.addBodyPart(messageBodyPart);  
                    }  
                }  
            }  
              
            //将MimeMultipart对象设置为邮件内容     
            mailMessage.setContent(mainPart);  
            Transport.send(mailMessage);//发送邮件  
            return true;  
        }catch (Exception e) {  
            e.printStackTrace();  
        }  
        return false;  
    }  
}


 public static void main(String[] args) {  
	        MailInfo mailInfo = new MailInfo();  
	        mailInfo.setMailServerHost("smtp.sina.cn");  
	        mailInfo.setMailServerPort("25");  
	       mailInfo.setValidate(true);  
	        mailInfo.setUsername("18634301317@sina.cn");  
	        mailInfo.setFromAddress("18634301317@sina.cn");  
	        mailInfo.setPassword("......");// 您的邮箱密码  
	        mailInfo.setToAddress("a754782339@sina.com");  
	        mailInfo.setSubject("测试邮件");  
	                  
	        //附件  
	        String[] attachFileNames={"C:/Users/Administrator/Desktop/测试文本.txt"};  
	        mailInfo.setAttachFileNames(attachFileNames);  
	          
	        // 这个类主要来发送邮件  
	        mailInfo.setContent("你好,我这边工作已经结束请速来,<a href=\"www.baidu.com\">www.baidu.com</a>");  
	        SimpleMail.sendTextMail(mailInfo);// 发送文体格式  
//	        StringBuffer demo = new StringBuffer();  
//	        demo.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">")  
//	        .append("<html>")  
//	        .append("<head>")  
//	        .append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">")  
//	        .append("<title>测试邮件</title>")  
//	        .append("<style type=\"text/css\">")  
//	        .append(".test{font-family:\"Microsoft Yahei\";font-size: 18px;color: red;}")  
//	        .append("</style>")  
//	        .append("</head>")  
//	        .append("<body>")  
//	        .append("<span class=\"test\">大家好,这里是测试Demo</span>")  
//	        .append("</body>")  
//	        .append("</html>");  
//	        mailInfo.setContent(demo.toString());  
	       // SimpleMail.sendHtmlMail(mailInfo);// 发送html格式  
	    }  
分享到:
评论

相关推荐

    使用JAVAMail代发邮件

    这个类称为 MailInfo,包含了邮件的各种信息,例如邮件服务器的主机名和端口号、邮件发送者的地址、邮件接收者的地址、邮件主题、邮件内容、邮件附件等。 在 MailInfo 类中,我们定义了多个成员变量,用于存储邮件...

    javamail发邮件(带附件)

    ### JavaMail 发送带附件的电子邮件 在Java开发过程中,经常需要通过程序自动发送电子邮件,尤其是在需要进行用户通知、密码重置或者系统日志报告等场景。JavaMail API提供了非常强大的功能来支持这些需求,包括...

    javamail收发邮件(带附件,正文带图).doc

    javamail收发邮件(带附件,正文带图).doc

    javamail收取邮件(包括附件)

    在JavaMail中,我们可以利用其API来实现邮件的收发功能,包括处理附件。下面我们将详细探讨如何使用JavaMail API实现邮件的收取,特别是如何通过POP3和IMAP协议获取邮件信息。 首先,确保你的项目中已经引入了...

    james和javamail实现邮件收发(带发送附件)

    JavaMail API支持MIME(多用途互联网邮件扩展)格式,这使得我们能够处理包括文本、图片、音频、视频以及各种其他类型在内的复杂邮件内容,包括附件。 下面是一个简化的JavaMail发送邮件的过程: 1. **配置邮件...

    javaMail 发邮件

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

    用JAVAMAIL发邮件(含附件),.TXT

    用JAVAMAIL发邮件(含附件),. TXT用JAVAMAIL发邮件(含附件),.TXT

    JavaMail邮件发送(带附件)

    JavaMail邮件发送(带附件)

    javamail发邮件(带附件功能)

    根据提供的文件信息,本文将详细解释如何使用JavaMail在Java应用程序中发送电子邮件,包括带有附件的邮件发送功能。本文档将覆盖以下知识点: 1. JavaMail API简介 2. JavaMail配置与设置 3. 创建并发送普通邮件 4....

    JavaMail(3)——发送带附件的邮件.docx

    在JavaMail中,发送带有附件的邮件涉及到对MIME(Multipurpose Internet Mail Extensions)标准的理解和使用。MIME扩展了邮件协议,允许在邮件中包含多媒体内容,如图片、文档、音频或视频文件等。 在JavaMail中,`...

    javamail发送邮件(带附件)

    这个资源提供了一个具体的示例,展示了如何使用JavaMail API 来发送带有附件的邮件。以下是对这个主题的详细解释: 首先,你需要理解JavaMail的核心组件。`javax.mail` 和 `javax.mail.internet` 包含了发送邮件所...

    javamail 回执邮件资料

    例如,使用 Commons Email 发送带附件的邮件: ```java SimpleEmail email = new SimpleEmail(); email.setFrom("sender@example.com"); email.setSubject("邮件主题"); email.setMsg("邮件正文"); email....

    JavaMail实现邮件发送的简单封装(包括文本、图片、html、附件)

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个库提供了一组API,使得开发者能够轻松地处理复杂的邮件操作,比如发送文本、图片、HTML内容以及附件。在本文中,我们将深入探讨如何使用...

    Gmail邮件通过JavaMail发送(不带附件与带一个附件)

    本教程将详细讲解如何使用JavaMail API在Gmail上发送邮件,包括不带附件和带有一个附件的情况。 首先,JavaMail是一个开源的Java库,它提供了用于处理邮件的标准API。在使用JavaMail发送邮件前,你需要在项目中引入...

    JavaMail 具备垃圾邮件过滤功能的邮箱

    JavaMail 是一个强大的Java库,它允许开发人员在Java应用程序中实现邮件的发送、接收以及管理功能。这个项目不仅提供了SMTP、POP3和IMAP协议的支持,还包含了丰富的API,可以方便地处理邮件的MIME编码、附件、HTML...

    JavaMail发送邮件(文本、html、附件)

    5. **发送带附件的邮件** - 使用`Multipart`对象,添加额外的`MimeBodyPart`来处理附件。 - 示例代码: ```java MimeBodyPart attachmentPart = new MimeBodyPart(); attachmentPart.attachFile("path/to/...

    06 使用JavaMail发送带附件的邮件.exe

    06 使用JavaMail发送带附件的邮件.exe06 使用JavaMail发送带附件的邮件.exe

    JavaMail发送带附件的邮件

    在JavaMail中发送带附件的邮件是一个常见的需求,尤其对于企业级应用或者自动化任务来说。下面将详细介绍如何使用JavaMail来实现这一功能,以及所需依赖和示例代码。 首先,要使用JavaMail,你需要在项目中添加相应...

    javamail(带界面的javamail)

    在本项目中,"javamail(带界面的javamail)"显然包含了一个具有图形用户界面(GUI)的示例应用,展示了如何集成JavaMail功能来实现邮件的交互操作。 首先,我们要了解JavaMail的基本概念。JavaMail API 提供了 javax...

Global site tag (gtag.js) - Google Analytics