java发送邮件,可带附件

package com.agenda.tdyhweb.util.email;

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

public class EmailAuthenticator extends javax.mail.Authenticator {
private String userName = null;

private String password = null;

public void setUserName(String aUserName) {
   this.userName = aUserName;
}

public void setPassword(String aPassword) {
   this.password = aPassword;
}

public EmailAuthenticator() {
   super();
}

public EmailAuthenticator(String aUserName, String aPassword) {
   super();
   setUserName(aUserName);
   setPassword(aPassword);
}

// 一定要有这个方法,它是在需要身份验证时自动被调用的
public PasswordAuthentication getPasswordAuthentication() {
   return new PasswordAuthentication(this.userName, this.password);
}
}

---------------------------

package com.agenda.tdyhweb.util.email;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.SendFailedException;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import javax.activation.FileDataSource;
import javax.activation.DataHandler;
import java.util.Date;
import java.util.Properties;
import java.io.File;
import java.io.UnsupportedEncodingException;

public class EmailSender {
private Session session = null;

private String mailFrom = null;

private String mailTo = null;

private String mailCc = null;

private String mailBcc = null;

private String subject = null;

private String content = null;

private String attachFile = null;

private String mailHost = null;

private String userName = null;

private String password = null;

public EmailSender(String mailHost) {
   Properties prop = new Properties();
   prop.put("mail.transport.protocol", "smtp");
   prop.put("mail.smtp.host", mailHost);

   this.session = Session.getDefaultInstance(prop, null);
}

public EmailSender(String mailHost, String userName, String password) {
   Properties prop = new Properties();
   prop.put("mail.transport.protocol", "smtp");
   prop.put("mail.smtp.host", mailHost);
   prop.put("mail.smtp.auth", "true");

   this.session = Session.getInstance(prop, new EmailAuthenticator(
     userName, password));
   // this.session.setDebug(true);
}

public EmailSender(String mailHost, String proxyHost, int proxyPort) {
   Properties prop = new Properties();
   prop.put("http.proxySet", "true");
   prop.put("http.proxyHost", proxyHost);
   prop.put("http.proxyPort", String.valueOf(proxyPort));
   prop.put("mail.transport.protocol", "smtp");
   prop.put("mail.smtp.host", mailHost);

   this.session = Session.getDefaultInstance(prop, null);
}

public EmailSender(String mailHost, String userName, String password,
    String proxyHost, int proxyPort) {
   Properties prop = new Properties();  
   prop.put("http.proxySet", "true");
   prop.put("http.proxyHost", proxyHost);
   prop.put("http.proxyPort", String.valueOf(proxyPort));
   prop.put("mail.transport.protocol", "smtp");
   prop.put("mail.smtp.host", mailHost);
   prop.put("mail.smtp.auth", "true");

   this.session = Session.getDefaultInstance(prop, new EmailAuthenticator(
     userName, password));
}

public void sendSimpleMail() throws MessagingException, SendFailedException {
   if (this.mailFrom == null) {
    throw new RuntimeException("NO   MAIL   FROM");
   }
   if (this.mailTo == null) {
    throw new RuntimeException("NO   MAIL   TO");
   }

   MimeMessage mimeMsg = new MimeMessage(this.session);

   mimeMsg.setFrom(new InternetAddress(mailFrom));
   mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress
     .parse(mailTo));

   if (mailCc != null) {
    mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress
      .parse(mailCc));
   }

   if (mailBcc != null) {
    mimeMsg.setRecipients(Message.RecipientType.BCC, InternetAddress
      .parse(mailBcc));
   }

   mimeMsg.setSubject(subject, "GB2312");
   mimeMsg.setText(content, "GB2312");
   mimeMsg.setSentDate(new Date());

   Transport.send(mimeMsg);
}

// 带附件
public void sendMultiPartMail() throws MessagingException,
    SendFailedException, UnsupportedEncodingException {
   if (this.mailFrom == null) {
    throw new RuntimeException("NO   MAIL   FROM");
   }
   if (this.mailTo == null) {
    throw new RuntimeException("NO   MAIL   TO");
   }
   if (this.attachFile == null) {
    throw new RuntimeException("NO   MAIL   TO");
   }
   File file = new File(attachFile);
   if (!file.canRead()) {
    throw new RuntimeException("Can't   find   the   attached   file!");
   }

   MimeMessage mimeMsg = new MimeMessage(this.session);

   mimeMsg.setFrom(new InternetAddress(mailFrom));
   mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress
     .parse(mailTo));

   if (mailCc != null) {
    mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress
      .parse(mailCc));
   }

   if (mailBcc != null) {
    mimeMsg.setRecipients(Message.RecipientType.BCC, InternetAddress
      .parse(mailBcc));
   }

   mimeMsg.setSubject(subject, "GB2312");

   MimeBodyPart mbp1 = new MimeBodyPart();
   //mbp1.setText(content, "GB2312");
   mbp1.setContent(content.toString(),"text/html;charset=GB2312");  
   MimeBodyPart mbp2 = new MimeBodyPart();
   FileDataSource fds = new FileDataSource(this.attachFile);
   mbp2.setDataHandler(new DataHandler(fds));
   mbp2.setFileName(MimeUtility.encodeWord(fds.getName()));

   MimeMultipart mp = new MimeMultipart();
   mp.addBodyPart(mbp1);
   mp.addBodyPart(mbp2);
//   设置邮件内容,将邮件body部分转化为HTML格式
   //mimeMsg.setDataHandler(new javax.activation.DataHandler(new com.agenda.tdyhweb.util.email.StringDataSource (content,"text/html")));

   mimeMsg.setContent(mp);

   mimeMsg.setSentDate(new Date());

   Transport.send(mimeMsg);

}

public void setMailFrom(String mailFrom) {
   this.mailFrom = mailFrom;
}

public void setMailTo(String mailTo) {
   this.mailTo = mailTo;
}

public void setMailCc(String mailCc) {
   this.mailCc = mailCc;
}

public void setMailBcc(String mailBcc) {
   this.mailBcc = mailBcc;
}

public void setSubject(String subject) {
   this.subject = subject;
}

public void setContent(String content) {
   this.content = content;
}

public void setAttachFile(String attachFile) {
   this.attachFile = attachFile;
}
}
---------------------------------------

package com.agenda.tdyhweb.util.email;
import java.util.Locale;
import java.util.ResourceBundle;


public class GetProperties {


private ResourceBundle bundle = null;
private String proName = "";
public static final String FILEPATH = "UserFiles/files/";
public static final String IMAGESPATH = "UserFiles/images/";
public GetProperties(String proname){
   this.proName = proname;
}


public String getProp(String type) throws Exception {
   if (bundle == null) {
    try {
     bundle = ResourceBundle.getBundle(this.proName, Locale.getDefault());
    } catch (Exception e) {
     System.out.println("获取资源出错!" + e);
    }
   }
   return bundle.getString(type);
}
}
-------------------------------------

package com.agenda.tdyhweb.util.email;
import com.agenda.tdyhweb.util.email.GetProperties;;
public class Sender {
public Sender() {
}

public void send(String to) {
   try {
    GetProperties gp = new GetProperties("email");
    String host="";
    String user="";
    String pass="";
    String from="";
    String address="";
    String title="理财专刊";
    String content="尊敬的投资者:

";
    content=content + "    您好!感谢您对支持与关注!

";
    content=content + "    混合型基金将于8月27日拆分,并限量申购,为了让您更好地了";
    content=content + "解此只基金,我们特制作了《理财专刊》供您参考,请参见附件.

";   
    content=content + "    选基金是股票配置比例为50%-70%的积极进取混合型基金,本基金";
    content=content + "股市债市两手抓,在严格控制风险的同时更积极把握市场上升的机遇。在选择企业时,";
    content=content + "本基金将更关注如新能源利用等符合“十一五规划”的题材,重点投资于较高的投资效";
    content=content + "率下持续成长的公司,为基金持有人提供可持续的价值增值。

";
    content=content + "    网上交易现已全面支持建行卡、农行卡、兴业银行卡,您持以上银行卡可";
    content=content + "直接登录网站(办理开户、申购等手续,网上申购免排队,费率0.6%。

";   
    content=content + "    财智分享,合赢人生!

";
    content=content + "    基金管理有限公司
";
      
    host=gp.getProp("mail.host");   
    user=gp.getProp("mail.user");
    pass=gp.getProp("mail.password");
    from=gp.getProp("mail.defaultemail");
    address=gp.getProp("address");
    //title=gp.getProp("mail.title");   
    //content=gp.getProp("mail.content");
    System.out.println(address);
    EmailSender sender = new EmailSender(host,user,pass);
    sender.setMailFrom(from);
    sender.setMailTo(to);
    sender.setSubject(title);
    sender.setContent(content);
    String filename=address + "\\zk.pdf";
    System.out.println("filename is" + filename);
    sender.setAttachFile(filename);
    System.out.println("Sending   email   .....");
    sender.sendMultiPartMail();
    System.out.println("success!");
   } catch (Exception e) {
    e.printStackTrace();
   }
}
}

-----------------------------------------

package com.agenda.tdyhweb.util.email;


public class StringDataSource implements javax.activation.DataSource
{
private java.lang.String data;
    private java.lang.String type;

    public StringDataSource(java.lang.String data,java.lang.String type)
    {
    this.data = data;
    this.type=type;   
    }

    public java.io.InputStream getInputStream() throws java.io.IOException
    {
    return new java.io.StringBufferInputStream(data);
    }

    public java.io.OutputStream getOutputStream() throws java.io.IOException
    {
    throw new java.io.IOException("it does not support this method now!");
    }

    public java.lang.String getContentType(){
       return type;
    }

    public java.lang.String getName()
    {
       return " mymail ";
    }
}

-----------------------------------------------------------

mail.basePath=http://www.beijing-hyundai.com.cn
#smtp
mail.host=21*.10*.30.21*
#??
mail.user=pin.huan
#??
mail.password=huaping
#????smtp??
mail.issmtp=true
#???
mail.defaultemail=pin.huan@cn.agenda-asia.com

#??
mail.title="????"

#??
mail.content="??"
address=e:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值