package cn.com.xinli.mail;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
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;
import javax.mail.internet.MimeUtility;
public class Mail {
/**
* 通常email都使用的是smtp来发送邮件,使用pop3来接受邮件
* @throws Exception
*/
public void sendMail() throws Exception
{
String host = "192.168.0.181"; //
String from = "xx@xinli.com.cn"; //
String psw = "xinlilipf";
String to1 = "aa@xinli.com.cn"; //
String to2 = "bb@xinli.com.cn"; //
String to3 = "cc@xinli.com.cn"; //
String cto1 = "dd@xinli.com.cn"; //
Properties props = System.getProperties();
//host的问题
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Email_Autherticator myauth = new Email_Autherticator(from, psw);
Session session = Session.getDefaultInstance(props, myauth);
MimeMessage message = new MimeMessage(session);
message.setContent("444", "text/plain");
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to1));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to2));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to3));
message.addRecipient(Message.RecipientType.CC, new InternetAddress(cto1));
message.setSubject("系统使用情况");
System.out.println("--------------");
/** 邮件附件 */
MimeBodyPart messageBodyPart =new MimeBodyPart();
Date date = new Date();
StringBuffer str = new StringBuffer();
str.append("大家好:")
.append("\r\n")
.append(" 附件是系统的使用情况\r\n")
.append(" \t 李鹏飞\r\n")
.append("\t\t\t\t"+date);
DataSource fds = new javax.mail.util.ByteArrayDataSource(str.toString().getBytes(),"text/html");
messageBodyPart.setDataHandler(new DataHandler(fds));
String a = "D:\\data\\登陆情况按时间.csv";
String b = "D:\\data\\登陆情况按地市.csv";
String c = "D:\\data\\登陆情况明细.csv";
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
//发送附件
messageBodyPart = new MimeBodyPart();
DataSource source_a =new FileDataSource(a);
messageBodyPart.setDataHandler(new DataHandler(source_a));
messageBodyPart.setFileName(MimeUtility.encodeText("登陆情况按时间.csv"));
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
DataSource source_b =new FileDataSource(b);
messageBodyPart.setDataHandler(new DataHandler(source_b));
messageBodyPart.setFileName(MimeUtility.encodeText("登陆情况按地市.csv"));
multipart.addBodyPart(messageBodyPart);
messageBodyPart = new MimeBodyPart();
DataSource source_c =new FileDataSource(c);
messageBodyPart.setDataHandler(new DataHandler(source_c));
messageBodyPart.setFileName(MimeUtility.encodeText("登陆情况明细.csv"));
multipart.addBodyPart(messageBodyPart);
message.setText("java");
message.setContent(multipart);
message.saveChanges();
Transport.send(message);
}
}
package cn.com.xinli.mail;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class Email_Autherticator extends Authenticator
{
String username = "";
String password = "";
public Email_Autherticator()
{
super();
}
public Email_Autherticator(String user,String pwd)
{
super();
username = user;
password = pwd;
}
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(username,password);
}
}
1.乱码:
MimeUtility.encodeText("登陆情况明细.csv") 搞定。
2. jar :
activation.jar和mail.jar
分享到:
相关推荐
这个类称为 MailInfo,包含了邮件的各种信息,例如邮件服务器的主机名和端口号、邮件发送者的地址、邮件接收者的地址、邮件主题、邮件内容、邮件附件等。 在 MailInfo 类中,我们定义了多个成员变量,用于存储邮件...
在IT领域,网页发邮件是一种常见的功能,它允许用户通过浏览器界面发送电子邮件,而无需借助桌面邮件客户端。本文将深入探讨如何使用HTML实现这一功能,以及相关的关键技术点。 首先,我们要理解HTML(HyperText ...
在线发邮件系统是一种便捷的工具,它允许用户无需登录邮箱客户端或网页版邮箱,直接通过输入必要的信息(发送邮件的地址、标题和正文)来发送邮件。这种系统通常基于Web技术构建,为用户提供了一个简洁的界面,使得...
发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件的库发送邮件...
本示例“多线程发邮件”就是利用了这一特性,通过并发执行多个邮件发送任务,来加快邮件的发送速度。下面我们将深入探讨相关知识点。 首先,多线程是指在一个进程中同时执行多个线程,这些线程可以共享同一块内存...
### SAP BO 自动发邮件配置指导 #### 一、引言 在企业级应用中,自动化工具能够极大地提高工作效率并减少人为错误。SAP BusinessObjects(简称BO)提供了强大的数据分析和报告工具,其中包括了自动发送电子邮件的...