package com.beltino.common_java;import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;
import java.io.*;
import javax.activation.*;public class JavaMail {
String m_user = null; //用于需要验证的用户名
String m_pass = null; //口令
String m_server = null; //SMTP服务器名称
int m_port = 25; //端口号,缺省为25
String m_from = null; //发件人
String m_to = null; //收件人
String m_cc = null; //抄送
String m_bcc = null; //密送
String m_subject = null; //主题
String m_body = null; //内容体
LinkedList m_attach = null; //附件的文件名列表
JavaMail() {
} //设定smtp服务器用户名(可选)
public void setUser(String user) {
m_user = user;
} //设定smtp服务器口令(可选)
public void setPass(String pass) {
m_pass = pass;
} //设定smtp的地址和端口号(可选)
public void setServer(String server, int port) {
if (port > 0) {
m_port = port;
}
m_server = server;
} //设定smtp服务器地址,端口号使用缺省值
public void setServer(String server) {
m_server = server;
} //发件人
public void setFrom(String from) {
m_from = from;
} //收件人
public void setTo(String to) {
m_to = to;
} //抄送(可选)
public void setCc(String cc) {
m_cc = cc;
} //密送(可选)
public void setBcc(String bcc) {
m_bcc = bcc;
} //设置新的主题(可选)
public void setSubject(String subject) {
m_subject = subject;
} //设置信的内容,若以<html>或<HTML>开头的内容为text/html格式
public void setBody(String body) {
m_body = body;
} //可以多次添加附件,文件名最好是全路径,使用相对路径容易出错
public void attach(String attachfile) {
if (m_attach == null) {
m_attach = new LinkedList();
}
m_attach.add(attachfile);
} public boolean sendMail() throws Exception { Properties props = System.getProperties();
props.setProperty("mail.transport.protocol", "smtp"); //smtp协议
props.setProperty("mail.smtp.host", m_server); //服务器地址
props.setProperty("mail.smtp.port", "" + m_port); //端口号 //认证信息
if (m_user != null && m_pass != null && m_user.length() > 0 &&
m_pass.length() > 0) {
props.setProperty("mail.smtp.auth", "true");
} javax.mail.Session sess = javax.mail.Session.getDefaultInstance(props, null);
MimeMessage msg = new MimeMessage(sess); //发件人
msg.setFrom(new InternetAddress(m_from)); //收件人、抄送、密送
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(m_to));
if (m_cc != null && m_cc.length() > 0) {
msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(m_cc));
}
if (m_bcc != null && m_bcc.length() > 0) {
msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(m_bcc));
}
//主题
if (m_subject != null) {
msg.setSubject(m_subject); //发件日期
}
msg.setSentDate(new Date()); //文本内容
MimeMultipart content = new MimeMultipart();
if (content == null) {
return false;
} MimeBodyPart part;
if (m_body != null && m_body.length() > 0) {
part = new MimeBodyPart();
String type = "text/plain";
if (m_body.startsWith("<html>") || m_body.startsWith("<HTML>")) {
type = "text/html";
}
part.setText(m_body); //以<html>和<HTML>开始的文本为text/html类型
part.setHeader("Content-Type", type); content.addBodyPart(part); } //添加附件
if (m_attach != null) { String filename;
Iterator it = m_attach.iterator(); while (it.hasNext()) {
filename = (String) it.next();
if (filename == null || filename.length() <= 0) {
continue;
} part = new MimeBodyPart();
FileDataSource fds = new FileDataSource(filename);
part.setDataHandler(new DataHandler(fds));
part.setFileName(MimeUtility.encodeText(fds.getName())); content.addBodyPart(part);
}
} //保存修改
msg.setContent(content);
msg.saveChanges(); //如果需要验证用户(如:smtp.sina.com.cn),则使用connect并sendMessage
//注意必须设定mail.smtp.auth属性为true
if (m_user != null && m_pass != null && m_user.length() > 0 &&
m_pass.length() > 0) {
Transport trans = sess.getTransport();
trans.connect(m_server, m_user, m_pass);
trans.sendMessage(msg, InternetAddress.parse(m_to));
trans.close();
}
//否则,不需要用户名和口令使用静态方法发送由件
else {
Transport.send(msg); }
return true;
} public static void main(String argv[]) throws Exception { JavaMail smtp = new JavaMail();
smtp.setFrom("XXX@XXX");
smtp.setTo("[email protected]");
smtp.setCc("[email protected]>"); smtp.setServer("XXX.com");
smtp.setUser("zmj");
smtp.setPass("zmjsxd"); smtp.setSubject("你好,测试由件");
smtp.setBody("<html><a href=hh>你好</a>,我的朋友\r\n还有</html>");
smtp.attach("d:\\bbb.jpg");
smtp.attach("d:\\TOrder修改.sql"); boolean ret = smtp.sendMail(); if(ret){
System.out.println("发送成功");
}else{
System.out.println("发送失败");
} }}
import java.util.*;
import javax.mail.internet.*;
import java.io.*;
import javax.activation.*;public class JavaMail {
String m_user = null; //用于需要验证的用户名
String m_pass = null; //口令
String m_server = null; //SMTP服务器名称
int m_port = 25; //端口号,缺省为25
String m_from = null; //发件人
String m_to = null; //收件人
String m_cc = null; //抄送
String m_bcc = null; //密送
String m_subject = null; //主题
String m_body = null; //内容体
LinkedList m_attach = null; //附件的文件名列表
JavaMail() {
} //设定smtp服务器用户名(可选)
public void setUser(String user) {
m_user = user;
} //设定smtp服务器口令(可选)
public void setPass(String pass) {
m_pass = pass;
} //设定smtp的地址和端口号(可选)
public void setServer(String server, int port) {
if (port > 0) {
m_port = port;
}
m_server = server;
} //设定smtp服务器地址,端口号使用缺省值
public void setServer(String server) {
m_server = server;
} //发件人
public void setFrom(String from) {
m_from = from;
} //收件人
public void setTo(String to) {
m_to = to;
} //抄送(可选)
public void setCc(String cc) {
m_cc = cc;
} //密送(可选)
public void setBcc(String bcc) {
m_bcc = bcc;
} //设置新的主题(可选)
public void setSubject(String subject) {
m_subject = subject;
} //设置信的内容,若以<html>或<HTML>开头的内容为text/html格式
public void setBody(String body) {
m_body = body;
} //可以多次添加附件,文件名最好是全路径,使用相对路径容易出错
public void attach(String attachfile) {
if (m_attach == null) {
m_attach = new LinkedList();
}
m_attach.add(attachfile);
} public boolean sendMail() throws Exception { Properties props = System.getProperties();
props.setProperty("mail.transport.protocol", "smtp"); //smtp协议
props.setProperty("mail.smtp.host", m_server); //服务器地址
props.setProperty("mail.smtp.port", "" + m_port); //端口号 //认证信息
if (m_user != null && m_pass != null && m_user.length() > 0 &&
m_pass.length() > 0) {
props.setProperty("mail.smtp.auth", "true");
} javax.mail.Session sess = javax.mail.Session.getDefaultInstance(props, null);
MimeMessage msg = new MimeMessage(sess); //发件人
msg.setFrom(new InternetAddress(m_from)); //收件人、抄送、密送
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(m_to));
if (m_cc != null && m_cc.length() > 0) {
msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(m_cc));
}
if (m_bcc != null && m_bcc.length() > 0) {
msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(m_bcc));
}
//主题
if (m_subject != null) {
msg.setSubject(m_subject); //发件日期
}
msg.setSentDate(new Date()); //文本内容
MimeMultipart content = new MimeMultipart();
if (content == null) {
return false;
} MimeBodyPart part;
if (m_body != null && m_body.length() > 0) {
part = new MimeBodyPart();
String type = "text/plain";
if (m_body.startsWith("<html>") || m_body.startsWith("<HTML>")) {
type = "text/html";
}
part.setText(m_body); //以<html>和<HTML>开始的文本为text/html类型
part.setHeader("Content-Type", type); content.addBodyPart(part); } //添加附件
if (m_attach != null) { String filename;
Iterator it = m_attach.iterator(); while (it.hasNext()) {
filename = (String) it.next();
if (filename == null || filename.length() <= 0) {
continue;
} part = new MimeBodyPart();
FileDataSource fds = new FileDataSource(filename);
part.setDataHandler(new DataHandler(fds));
part.setFileName(MimeUtility.encodeText(fds.getName())); content.addBodyPart(part);
}
} //保存修改
msg.setContent(content);
msg.saveChanges(); //如果需要验证用户(如:smtp.sina.com.cn),则使用connect并sendMessage
//注意必须设定mail.smtp.auth属性为true
if (m_user != null && m_pass != null && m_user.length() > 0 &&
m_pass.length() > 0) {
Transport trans = sess.getTransport();
trans.connect(m_server, m_user, m_pass);
trans.sendMessage(msg, InternetAddress.parse(m_to));
trans.close();
}
//否则,不需要用户名和口令使用静态方法发送由件
else {
Transport.send(msg); }
return true;
} public static void main(String argv[]) throws Exception { JavaMail smtp = new JavaMail();
smtp.setFrom("XXX@XXX");
smtp.setTo("[email protected]");
smtp.setCc("[email protected]>"); smtp.setServer("XXX.com");
smtp.setUser("zmj");
smtp.setPass("zmjsxd"); smtp.setSubject("你好,测试由件");
smtp.setBody("<html><a href=hh>你好</a>,我的朋友\r\n还有</html>");
smtp.attach("d:\\bbb.jpg");
smtp.attach("d:\\TOrder修改.sql"); boolean ret = smtp.sendMail(); if(ret){
System.out.println("发送成功");
}else{
System.out.println("发送失败");
} }}
解决方案 »
- 请问,能否把一个包含java代码字符串转变成一个类,用java程序
- java能执行oracle的过程吗?
- 我查询的页面打开要6秒多钟,有没有现成的点击查询出来等待页面,数据出来以后,框框就没有了?
- 【求助】如何实现Frame窗体中的关闭按钮不可用?
- 如何在JAVA中实现控件的复制
- 我的JDBC问题
- 在线等待jsp中sql异常问题
- 请问哪里有java图像编程图书的下载?找了很长时间都没找到,请帮帮忙!
- java基础问题
- 客户-服务器问题
- log4j 的root logger 是必需的,有做什么用的? 顺便清OnlyFor_love(有生之年,狭路相逢,终不能幸免.....) 进来看看。
- 为什么方法名、参数相同,返回值类型不同的方法不是重载
import javax.mail.*;
import javax.mail.internet.*;
import java.util.Date;public class sendMail { public static void main(String[] args) { try{ //设置邮件信息
String tto="[email protected]";
String ttitle="你好,这是测试主题";
String tcontent="你好,这是测试邮件文本"; Properties props=new Properties();//也可用Properties props = System.getProperties();
props.put("mail.smtp.host","smtp.163.com");//存储发送邮件服务器的信息
props.put("mail.smtp.auth","true");//同时通过验证
Session s=Session.getInstance(props);//根据属性新建一个邮件会话
s.setDebug(true); MimeMessage message=new MimeMessage(s);//由邮件会话新建一个消息对象 //设置邮件
InternetAddress from=new InternetAddress("fromtest");
message.setFrom(from);//设置发件人
InternetAddress to=new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO,to);//设置收件人,并设置其接收类型为TO
message.setSubject(ttitle);//设置主题
message.setText(tcontent);//设置信件内容
message.setSentDate(new Date());//设置发信时间 //发送邮件
message.saveChanges();//存储邮件信息
Transport transport=s.getTransport("smtp");
transport.connect("smtp.163.com" , "userid","password");//以smtp方式登录邮箱
transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有
//已设好的收件人地址
transport.close();
System.out.println("发送成功!");
}catch(MessagingException e){
System.out.println(e.toString());
}
}}