Java Mail 例子

 
  网上很多,不过一般都是没有smtp验证的,下边是一段示例代码:
  不能直接运行的,不过,可以看看里面关于验证的部分。

  //发送邮件函数
  public boolean sendMail(String mailTo,String mailSubject,String mailBody){
    //发送email
    try {
      //default account information
      String smtpServer = "smtp.smtpserver.com";
      String smtpAuth = "true";
      String smtpUser = "username";
      String smtpPassword = "password";
      String From = "from@yourserver.com";
      String To = mailTo;
      String Subject = mailSubject;
      String Text = mailBody;
      java.util.ResourceBundle resBundle;
      resBundle = java.util.ResourceBundle.getBundle("mailinfo",
          Locale.SIMPLIFIED_CHINESE);
      if (resBundle != null) {
        smtpServer = resBundle.getString("mail.smtp.host");
        smtpAuth = resBundle.getString("mail.smtp.auth");
        smtpUser = resBundle.getString("mail.smtp.user");
        smtpPassword = resBundle.getString("mail.smtp.password");
        From = resBundle.getString("mail.smtp.from");
      }
      Properties props = new Properties();
      Session sendMailSession;
      Transport transport;
      props.put("mail.smtp.host", smtpServer);
      props.put("mail.smtp.auth", smtpAuth);
      if ("true".equals(smtpAuth)) {
        //smtp服务器需要验证,用MyAuthertiactor来创建mail session
        MyAuthenticator myauth = new MyAuthenticator(smtpUser, smtpPassword);
        sendMailSession = Session.getInstance(props, myauth);
      }
      else {
        sendMailSession = Session.getInstance(props);
      }
      //Debug
      sendMailSession.setDebug(true);
      Message newMessage = new MimeMessage(sendMailSession);
      newMessage.setFrom(new InternetAddress(From));
      newMessage.setRecipient(Message.RecipientType.TO,
                              new InternetAddress(mailTo));
      newMessage.setSubject(Subject);
      newMessage.setSentDate(new Date());
      newMessage.setText(Text);
      newMessage.saveChanges();
      transport = sendMailSession.getTransport("smtp");
      transport.send(newMessage, newMessage.getAllRecipients());
      transport.close();
    }
    catch (Exception mailEx) {
      System.err.println("Send Mail Error:" + mailEx.getMessage());
      return false;
    }
    return true;
  }

  //smtp需要验证时候的验证类
  class MyAuthenticator
      extends javax.mail.Authenticator {
    private String strUser;
    private String strPwd;
    public MyAuthenticator(String user, String password) {
      this.strUser = user;
      this.strPwd = password;
    }

    protected PasswordAuthentication getPasswordAuthentication() {
      return new PasswordAuthentication(strUser, strPwd);
    }
  }

时间: 2024-10-31 03:02:14

Java Mail 例子的相关文章

Java Mail最基本的发送邮件例子

首先需要导入jar包,mail-1.4.2.jar,然后给出最简单的java mail发送邮件的代码,SimpleSendMailDemo.java SimpleSendMailDemo.java package com.steven.mail; import java.util.Properties; import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.Message; import jav

使用java mail 包收发中文邮件的编码,解码问题以及解决方法

编码|解决|问题|中文 编码 邮件头(参见RFC822,RFC2047)只能包含US-ASCII字符.邮件头中任何包含非US-ASCII字符的部分必须进行编码,使其只包含US-ASCII字符.所以使用java mail发送中文邮件必须经过编码,否则别人收到你的邮件只能是乱码一堆.不过使用java mail 包的解决方法很简单,用它自带的MimeUtility工具中encode开头的方法(如encodeText)对中文信息进行编码就可以了. 例子: MimeMessage mimeMsg = ne

用Java Mail发送带有图片附件的html格式邮件

用Java Mail发送带有图片的html格式的邮件,针对于显示图片,一般有两种方法. 1. 图片存在于服务器上,我们只需要把图片在服务器的的链接放进去即可. 这种发式比较简单,但是这种方法有些缺陷: 图片不支持离线浏览: 每次浏览邮件需要访问web服务,增加服务器负担: 若图片以二进制的方式存在于数据库或是动态生成的,则无法有效的解决. 2. 把图片以附件的方式发送出去,这种方式非常适用于图片存在于数据库中的情况. 本文也主要讨论这种情况. 对于Java Mail的基础知识,请看http://

Java Mail API及其应用 —— 一个邮件列表服务器的实现 (三)(转贴)

服务器|邮件列表 相关资源1.Java Mail API软件包下载(版本1.1.2) ftp://usmt.java.sun.com/pub/javamail/tyo39/javamail1_1_2.zip 缺省POP3实现软件包下载: ftp://usmt.java.sun.com/pub/javamial/tyo39/pop31_1.zip 以上文件也可以从Sun的Java Mail API主页下载 http://java.sun.com/products/javamail/ 2.JavaB

Java Mail API及其应用 —— 一个邮件列表服务器的实现 (二)(转贴)

服务器|邮件列表 邮件列表服务经常用于为工作组提供基于email的讨论环境,订阅者通过它讨论共同感兴趣的问题. 本文提供的示例程序ListServer是一个简单的邮件列表转发服务器:它从指定帐号读取新邮件并发送给所有订阅者.Java Mail API不仅使得实现其基本功能相当简单(使用缺省的POP3和SMTP),而且保证了程序易于支持任何可能遇到的系统环境. 运行该程序需要包含以下支持文件:Java Mail (mail.jar).JAF(activation.jar)以及缺省的POP3支持(p

Java Mail API及其应用 —— 一个邮件列表服务器的实现 (一)(转贴)

服务器|邮件列表 Java Mail API 是Sun开发的最新标准扩展API之一,它给Java应用程序开发者提供了独立于平台和协议的邮件/通讯解决方案.本文介绍该API的核心机制,并通过一个邮件转发服务器(邮件列表服务器)演示其具体用法. Java Mail API的开发是Sun为Java开发者提供公用API框架的持续努力的良好例证.提倡公用框架,反对受限于供应商的解决方案,充分预示着一个日益开放的开发环境的建立. 在email通讯领域,面向最终应用的开发者(以及用户)已经能够购买到最适合他们

Android中如何使用Java Mail API发送邮件

最近在考虑为已经有的一个应用程序增加一个用户反馈的功能,用户可以通过反馈功能将用户的意见和建议.程序出现的问题以一种更符合用户习惯的方式反馈回来.网上也有一些实现好的反馈程序的服务,包括bug的提交.程序的建议.程序使用中的问题,但是这样的服务基本上不是完全开源和免费的,并且我对程序反馈的定位还是用户可以把他的想法通过写文字的方法发送回来就可以(不需要记录崩溃时的系统状况),所以还是决定在完全了解实现机制的基础上来实现反馈功能. 采用发送邮件的方式不需要自己构建服务器,同时也符合我对反馈的管理习

Java小例子

想当年学 BASIC 的时候,获取用户输入多简单,就一个 input:后来学 C, 也挺简单,一个 scanf():后来学 c++,同样简单,一个 cin <<:到了 Java 这里,麻烦来了. 1.简单的获取用户输入 下面是一个基本的例子,包含解释: 1.import java.io.BufferedReader; 2.import java.io.InputStreamReader; 3.import java.io.IOException; 4. 5.public class Basic

使用Spring的JAVA Mail支持简化邮件发送(转)

闲来无事,翻看<Spring in Action>,发现Spring集成了对JAVA Mail的支持,有点小激动的看了一遍,嗯,话说真的简单了很多. Spring的邮件发送的核心是MailSender接口,在Spring3.0中提供了一个实现类JavaMailSenderImpl,这个类是发送邮件的核心类.可以通过在配置文件中配置使用,当然也可以自己硬编码到代码中(方便起见,下面的演示代码都是硬编码到代码中,省得配置麻烦). Spring提供的邮件发送不仅支持简单邮件的发送.添加附件,而且还可