`
baobeituping
  • 浏览: 1070412 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JAVAMAIL发送邮件实例

阅读更多

1.定义一个发送邮件的BEAN类

package com.service;

import java.util.Vector;

public class MailBean {
 private String to;                                // 收件人
    private String from;                            // 发件人
    private String host;                            // SMTP主机
    private String username;                        // 发件人的用户名
    private String password;                        // 发件人的密码
    private String subject;                            // 邮件主题
    private String content;                            // 邮件正文
    Vector<String> file;                            // 多个附件
    private String filename;                        // 附件的文件名
   
    public String getTo() {
        return to;
    }

    public void setTo(String to) {
        this.to = to;
    }

    public String getFrom() {
        return from;
    }

    public void setFrom(String from) {
        this.from = from;
    }

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    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 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 getFilename() {
        return filename;
    }

    public void setFilename(String filename) {
        this.filename = filename;
    }

    public Vector<String> getFile(){
        return file;
    }
    //该方法是用于上传附件用
    public void attachFile(String fileName) {
        if(file == null)
            file = new Vector<String>();
        file.addElement(fileName);
    }

 

}

2.定义发送邮件的服务类
package com.service;

import java.util.Date;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Vector;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
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;
import javax.mail.internet.MimeUtility;

public class SendMail {

  public String toChinese(String text) {
         try {
             text = MimeUtility.encodeText(new String(text.getBytes(), "GB2312"), "GB2312", "B");
         } catch (Exception e) {
             e.printStackTrace();
         }
         return text;
     }


     public boolean sendMail(MailBean mb) {
         String host = mb.getHost();
         final String username = mb.getUsername();
         final String password = mb.getPassword();
         String from = mb.getFrom();
         String to = mb.getTo();
         String subject = mb.getSubject();
         String content = mb.getContent();
         String fileName = mb.getFilename();
         Vector<String> file = mb.getFile();
        
        
         Properties props = System.getProperties();
         props.put("mail.smtp.host", host);                // 设置SMTP的主机
         props.put("mail.smtp.auth", "true");            // 需要经过验证
        
         Session session = Session.getInstance(props, new Authenticator() {
             public PasswordAuthentication getPasswordAuthentication() {
                 return new PasswordAuthentication(username, password);
             }
         });

         try {
             MimeMessage msg = new MimeMessage(session);
             msg.setFrom(new InternetAddress(from));
             InternetAddress[] address = {new InternetAddress(to)};
             msg.setRecipients(Message.RecipientType.TO, address);
             msg.setSubject(toChinese(subject));

             Multipart mp = new MimeMultipart();
             MimeBodyPart mbpContent = new MimeBodyPart();
             mbpContent.setText(content);
             mp.addBodyPart(mbpContent);

             /**//*    往邮件中添加附件    */
             Enumeration<String> efile = file.elements();
             while (efile.hasMoreElements()) {
                 MimeBodyPart mbpFile = new MimeBodyPart();
                 fileName = efile.nextElement().toString();
                 FileDataSource fds = new FileDataSource(fileName);
                 mbpFile.setDataHandler(new DataHandler(fds));
                 mbpFile.setFileName(toChinese(fds.getName()));
                 mp.addBodyPart(mbpFile);
             }

             msg.setContent(mp);
             msg.setSentDate(new Date());
             Transport.send(msg);
            
         } catch (MessagingException me) {
             me.printStackTrace();
             return false;
         }
         return true;
     }


 
}
3、测试类

package com.service;

import java.util.Properties;


public class Test
{
    // 邮箱服务器
   
    public Test()
    {
    }

    /** *//**
     * 此段代码用来发送普通电子邮件
     */
  

    public static void main(String[] args)
    {
     try {
       MailBean mb = new MailBean();
             mb.setHost("smtp.163.com");                        // 设置SMTP主机(163),若用126,则设为:smtp.126.com
             mb.setUsername("usertest");                // 设置发件人邮箱的用户名
             mb.setPassword("passwordtest");                        // 设置发件人邮箱的密码,需将*号改成正确的密码
             mb.setFrom("xx@163.com");            // 设置发件人的邮箱
             mb.setTo("xx@163.com");                // 设置收件人的邮箱
             mb.setSubject("测试_JavaMail");                    // 设置邮件的主题
             mb.setContent("本邮件中包含1个附件,请检查!");        // 设置邮件的正文

          // 往邮件中添加附件
             mb.attachFile("E://test.txt");
                      
             SendMail sm = new SendMail();
             System.out.println("正在发送邮件...");
            
             if(sm.sendMail(mb))                                // 发送邮件
                 System.out.println("发送成功!");
             else
                 System.out.println("发送失败!");
        


     
  } catch (Exception e) {
   e.printStackTrace();
  }
     
    }

}

 

分享到:
评论

相关推荐

    javamail发送邮件实例

    JavaMail 是一个强大的开源库,用于在Java应用程序中发送...以上就是使用JavaMail发送邮件的详细过程,以及与文本编辑器KindEditor的集成方式。在开发过程中,记得根据具体需求调整和优化代码,以满足不同的业务场景。

    javamail 发送邮件 实例

    下面,我们将深入探讨使用JavaMail发送邮件的实例。 首先,确保你的项目中已经包含了JavaMail的相关依赖。通常,这可以通过在Maven或Gradle的构建文件中添加对应的依赖完成。例如,对于Maven,可以在pom.xml文件中...

    JavaMail发邮件实例

    本程序是利用javaMail包编写的邮件代理程序,已经用exe4j打包成了二进制可执行文件,安装Java虚拟机后双击图标可直接运行,压缩包内附有源码,已经过测试,可放心使用。欢迎随时交流。 QQ:444080606 Email:运行...

    javamail发送邮件实例(导入MyEclipse即可运行)

    初学javamail的时候,弄了好久都没成功的例子,现在成功了和大家分享下,希望对刚入门的朋友有所帮助。本例是用qq邮箱运行的,所以发送端的邮箱smtp服务必须开启,接受端无需任何设置!导入成功后,直接运行...

    JavaMail的邮件实例

    本篇将深入探讨 JavaMail 的邮件实例,以及如何利用它来创建、发送和接收邮件。 在 JavaMail 中,主要涉及的核心接口和类包括 `Session`、`Message`、`MimeMessage`、`Transport` 和 `Store`。`Session` 是整个邮件...

    利用JavaMail发送邮件的实例,可以直接运行

    8. **使用JavaMail发送HTML邮件**:通过设置`MimeMessage`的`setContent()`方法,可以发送包含HTML的邮件。 ```java message.setContent("&lt;h1&gt;HTML邮件标题&lt;/h1&gt;&lt;p&gt;这是HTML邮件正文。&lt;/p&gt;", "text/html;charset=...

    javamail发送邮件的简单实例

    javamail发送邮件的简单实例

    javamail邮件发送实例

    JavaMail邮件发送实例是Java开发中常见的一个应用场景,主要用于实现程序自动发送电子邮件的功能。这个实例可以帮助开发者理解如何使用JavaMail API来构建邮件服务。在JavaMail API中,我们可以使用MimeMessage类...

    JavaMail发送邮件的例子

    下面我们将深入探讨JavaMail的基本概念、如何使用JavaMail发送邮件以及在Struts2框架中的实现方式。 JavaMail API主要包括以下组件: 1. `javax.mail.Session`:是JavaMail的核心,负责配置邮件服务器的信息,如...

    用javaMail发送邮件

    3. **创建邮件消息**:使用`Message`类实例化一个邮件对象,并设置必要的属性,如发件人、收件人、主题和正文。 ```java Message message = new MimeMessage(session); message.setFrom(new InternetAddress(...

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

    这个标题"JavaMail发送邮件(文本、html、附件)"涵盖了使用JavaMail API发送不同格式邮件的核心功能。下面将详细介绍如何利用JavaMail发送文本、HTML和包含附件的邮件,以及在实际应用中需要注意的配置步骤。 1. *...

    javaMail发送邮件的实例与资料大全

    以下是一个简单的JavaMail发送邮件的示例代码: ```java import javax.mail.*; import javax.mail.internet.*; public class SendEmail { public static void main(String[] args) { String to = "recipient@...

    javaMail 发邮件

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

    javamail发送邮件.zip

    这个“javamail发送邮件.zip”压缩包显然包含了一个示例项目,演示如何使用JavaMail API发送包含正文文本、图片以及附件的邮件。以下是对这个主题的详细解释: 1. **JavaMail API**: JavaMail API 是一组接口和类...

    Spring javaMail发送文本邮件实例

    导入到Myeclipse 即可运行 测试使用的是QQ邮箱 在application.xml中配置的发送邮箱 要到邮箱中设置 POP3/SMTP服务为开。项目不部署到tomcat后启动服务,然后运行test.java 就发送了,。绝对可以发送

    javamail发送邮件小程序,类以及写好,只要放包,下载一个就可以

    4. **Transport**:`Transport` 类负责将 `Message` 实例发送到邮件服务器。`Transport.send(Message)` 方法是实际发送邮件的关键调用。 5. **Address**:`Address` 类族包括 `InternetAddress`,用于表示电子邮件...

    javamail实现邮箱与邮箱发送邮件

    下面是一个使用JavaMail发送邮件的详细示例代码: ```java import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class EmailSender { public ...

    javaMail发送邮件依赖的jar包源码整理

    这个“javaMail发送邮件依赖的jar包源码整理”提供了关于如何使用 JavaMail 发送邮件以及相关库的源代码,这对于理解其工作原理和自定义功能非常有帮助。 在JavaMail中,主要涉及以下几个核心组件: 1. **JavaMail...

Global site tag (gtag.js) - Google Analytics