`
liuzhiqiang19890403
  • 浏览: 60972 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java mail发送邮件(带附件)

 
阅读更多

 /**

     * 发送邮件  带附件

     * @param mailInfo

     * @param attachment

     */

    public static boolean doSendHtmlEmail(MailSenderInfo mailInfo,File attachment) {

    // 判断是否需要身份认证    

    MyAuthenticator authenticator = null;    

    Properties pro = mailInfo.getProperties();   

    if (mailInfo.isValidate()) {    

    // 如果需要身份认证,则创建一个密码验证器    

      authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());    

    }   

    // 根据邮件会话属性和密码验证器构造一个发送邮件的session    

    Session sendMailSession = Session.getDefaultInstance(pro,authenticator);    

    try {    

    // 根据session创建一个邮件消息    

    Message mailMessage = new MimeMessage(sendMailSession);    

    // 创建邮件发送者地址    

    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());    

    // 设置邮件消息的主要内容    

    Multipart multipart = new MimeMultipart();

         

         // 添加邮件正文

         BodyPart contentPart = new MimeBodyPart();

         String mailContent = mailInfo.getContent(); 

         contentPart.setContent(mailContent, "text/html;charset=UTF-8");

         multipart.addBodyPart(contentPart);

         

      // 添加附件的内容

         if (attachment != null) {

             BodyPart attachmentBodyPart = new MimeBodyPart();

             DataSource source = new FileDataSource(attachment);

             attachmentBodyPart.setDataHandler(new DataHandler(source));

             // 网上流传的解决文件名乱码的方法,其实用MimeUtility.encodeWord就可以很方便的搞定

             // 这里很重要,通过下面的Base64编码的转换可以保证你的中文附件标题名在发送时不会变成乱码

             //sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();

             //messageBodyPart.setFileName("=?GBK?B?" + enc.encode(attachment.getName().getBytes()) + "?=");

             //MimeUtility.encodeWord可以避免文件名乱码

             attachmentBodyPart.setFileName(MimeUtility.encodeWord(attachment.getName()));

             multipart.addBodyPart(attachmentBodyPart);

         }

         mailMessage.setContent(multipart);

    // 发送邮件    

    Transport.send(mailMessage); 

    return true;

    } catch (Exception ex) {   

    logger.info("邮件发送失败,邮箱地址:【"+mailInfo.getToAddress()+"】");

        //ex.printStackTrace();    

    }   

    return false;

    }

分享到:
评论
发表评论

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

相关推荐

    JAVA MAIL发送邮件带附件和图片

    总结来说,发送带有附件和图片的Java邮件涉及多个步骤,包括设置邮件服务器参数、创建MimeMessage、添加不同类型的MimeBodyPart以及发送邮件。`TemplateMailMessage.java`和`MailTemplateHelper.java`则可能提供了更...

    java 发送附件mail

    总结一下,Java发送带有附件的邮件涉及到JavaMail API的使用,包括配置SMTP服务器、创建邮件对象、添加内容和附件,以及发送邮件等步骤。理解这些步骤和相关类的作用是实现此功能的关键。在处理不同类型的邮件时,...

    java Mail 发送邮件及邮件附件

    Java Mail 也支持发送邮件附件。要发送邮件附件,需要首先创建一个邮件单元,然后将附件添加到邮件单元中。下面是一个简单的示例代码: ```java public class Mail { public static void main(String[] args) { ...

    javaemail发送邮件(带附件)

    "javaemail发送邮件(带附件)" javaemail发送邮件(带附件)是使用Java技术实现的邮件发送功能,支持带附件的发送。下面是该功能的知识点总结: 1. 使用JavaMailSenderImpl类来发送邮件,需要设置SMTP服务器、用户名...

    java 邮件发送 可带附件

    在Java中,我们可以使用JavaMail API来实现邮件的发送,包括带有附件的功能。以下是对这个主题的详细解释: 一、JavaMail API简介 JavaMail API是一个开源的Java库,用于处理邮件服务。它提供了丰富的接口和类,...

    java 发邮件带excel附件,以流的形式发送附件,不生成excel文件

    现在,我们有了Excel数据的字节数组,可以将其作为邮件附件添加: ```java import javax.mail.util.ByteArrayDataSource; import javax.activation.DataSource; // 创建DataSource对象 DataSource dataSource = ...

    java mail 发送邮件

    提供的文件"发送邮件及邮件附件java代码实例(支持多附件_群发送).doc"和"java_mail_发送邮件代码.doc"可能包含了更详细的代码示例和具体实现过程,建议参考这些文档以获取完整的邮件发送和附件处理的代码。...

    java发邮件 带附件 多媒体邮件

    以上就是利用Java Mail API发送带有附件及多媒体内容的邮件的主要步骤。这种方法非常灵活,可以根据不同的需求定制邮件内容。在实际应用中,还需要注意错误处理及安全性问题,确保邮件发送过程的稳定性和安全性。

    java mail 发送邮件代码与架包

    在标题和描述中提到的"java mail 发送邮件代码",通常涉及以下几个关键知识点: 1. **JavaMail API**: 这是Java中用来处理邮件的核心库,包括`javax.mail`和`javax.mail.internet`包。你需要导入这些包来使用其提供...

    java邮件发送(含附件发送)源码

    此外,对于不同的邮件服务商,可能需要启用“不安全应用”或使用应用特定的授权码,以允许程序通过SMTP发送邮件。 在提供的"javamail"压缩包文件中,通常会包含示例代码或库文件,帮助你理解和实践上述概念。通过...

    Java实现发送邮件内容+附件

    要实现“Java实现发送邮件内容+附件”,我们需要理解SMTP(Simple Mail Transfer Protocol)协议,并使用JavaMail API来创建和发送电子邮件。以下是一份详细的步骤和知识点解释: 1. **JavaMail API**:JavaMail ...

    springboot发送邮件(含带附件的邮件,定时任务等功能)

    本教程将详细介绍如何在Spring Boot项目中实现邮件发送功能,包括发送普通邮件和带有附件的邮件,以及如何设置定时任务来自动发送邮件。 首先,我们需要在项目中引入Spring Boot的邮件服务依赖。在`pom.xml`或`...

    java生成excle邮件附件发送

    java生成excle文件不需要导出直接通过邮件附件发送java生成excle文件不需要导出直接通过邮件附件发送java生成excle文件不需要导出直接通过邮件附件发送java生成excle文件不需要导出直接通过邮件附件发送

    java mail 发送QQ邮件

    要使用Java Mail发送QQ邮件,首先需要在QQ邮箱设置中开启“POP3/SMTP/IMAP”服务,并获取授权码。授权码是QQ邮箱为第三方应用提供的一种安全验证方式,不同于普通密码。 ### 3. 添加依赖 在Java项目中,我们需要...

    java实现发送带有附件的邮件

    首先,JavaMail API是Java用来处理邮件的核心库,它提供了创建、发送邮件的功能。要使用JavaMail,我们需要引入相关的依赖。如果是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>com.sun.mail</...

    JAVA_Mail_邮件_发送_接收_抄送_密送_附件

    JAVA_Mail_邮件_发送_接收_抄送_密送_附件 该资源是一个Java项目,可用Eclipse导入即可运行。 共4个类: 1:ReceiveMail.java -接收普通邮件 2:ReciveMailWithAttachMent.java --接收含有附件的邮件 3:SendMail....

    使用 java mail 发送邮件

    要使用Java Mail发送邮件,首先需要添加相应的依赖库到项目中。对于Android项目,通常会通过Gradle来引入。 1. 添加依赖: 在项目的build.gradle文件中,添加以下依赖: ```groovy dependencies { ...

    java 发送邮件 spring发送邮件Mail

    Java发送邮件是软件开发中常见的需求,特别是在企业级应用中,用于发送通知、报表或验证用户的电子邮件地址。Spring框架提供了一种优雅的方式来处理这个任务,它整合了JavaMailSender接口和JavaMail API,使得在Java...

    Java Mail邮件发送源码下载

    Java Mail邮件发送是Java开发中常见的一项功能,用于在应用程序中发送电子邮件。Java Mail API提供了一个标准的接口,使得开发者可以方便地实现SMTP(简单邮件传输协议)和其他邮件协议的功能。下面将详细介绍Java ...

    利用Java发送邮件(含附件)的例子

    `SendEmail.java`类是邮件发送的测试类,它使用`ReadPropertity`类获取配置文件中的属性值,然后实例化`EmailHandle`对象并调用相应的方法发送邮件。 要实现邮件发送功能,你需要在项目中引入相应的JavaMail库,如`...

Global site tag (gtag.js) - Google Analytics