山穷水尽,走投无路,(100分)求javaMail例子一个 各位大虾,小弟搞了一天JavaMail.但邮件总发不出去.谁能给我一个例子.或者贴上来.E_MAIL:[email protected] 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,给你个好东西http://jakarta.apache.org/commons/email/这是apache对javamail封装的一个包,用的更简单,代码写的更少,例子都是现成的,不会的问我。 Thanks! 老大.我英语不太好,看不懂 晕倒,这个包已经做的很简单了啊,楼主还真是够懒。import java.util.Properties;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;/** * @author Markey Meng * @since 2005-11-29 * @version 1.0 */public class Test { public static void main(String[] args) throws Exception { // create some properties and get the default Session Properties props = new Properties(); props.put("mail.smtp.host", "smtp服务器地址"); Session session = Session.getDefaultInstance(props, null); Message message = new MimeMessage(session); // create a message InternetAddress ia[] = new InternetAddress[1]; ia[0] = new InternetAddress("收信人地址", "Me"); message.setFrom(new InternetAddress("[email protected]", "some developer")); message.setRecipients(Message.RecipientType.TO, ia); message.setSubject("Hello World"); message.setText( "Hello World! This message was generated using JavaMail."); message.saveChanges(); Transport transport = session.getTransport("smtp"); transport.connect(); transport.send(message); }} 害的我又特意拷贝了一个,这个是直接采用javamail,不用commons-email的。是发信的一个最基本的例子,网上都有现成的例子,楼主为什么不亲自去找找呢。google搜索javamail就成了。 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("[email protected]"); smtp.setTo("[email protected]"); smtp.setCc("'李'<[email protected]>"); smtp.setServer("mail.aaa.com"); smtp.setUser("xxx"); smtp.setPass("yyy"); 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的单总线(1-wire)开发?? RSA加密算法公钥提取失败求助 初级问题,为什么这个程序不能运行? java 2 swing 的一个问题 一个简单的问题——大虾请进 JBuilder3问题求助! 用jxl把两个excel的sheet合并成一个excel 请问怎么让Java更好地显示HTML--支持CSS呢?除了用JEditorPane还能用什么啊? 如何把一张图片切割成几块并存入Imange变量里?
http://jakarta.apache.org/commons/email/
这是apache对javamail封装的一个包,用的更简单,代码写的更少,例子都是现成的,不会的问我。
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;/**
* @author Markey Meng
* @since 2005-11-29
* @version 1.0
*/
public class Test { public static void main(String[] args) throws Exception {
// create some properties and get the default Session
Properties props = new Properties();
props.put("mail.smtp.host", "smtp服务器地址"); Session session = Session.getDefaultInstance(props, null);
Message message = new MimeMessage(session); // create a message
InternetAddress ia[] = new InternetAddress[1];
ia[0] = new InternetAddress("收信人地址", "Me"); message.setFrom(new InternetAddress("[email protected]", "some developer"));
message.setRecipients(Message.RecipientType.TO, ia);
message.setSubject("Hello World");
message.setText(
"Hello World! This message was generated using JavaMail.");
message.saveChanges(); Transport transport = session.getTransport("smtp");
transport.connect();
transport.send(message);
}
}
是发信的一个最基本的例子,网上都有现成的例子,楼主为什么不亲自去找找呢。
google搜索javamail就成了。
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("[email protected]");
smtp.setTo("[email protected]");
smtp.setCc("'李'<[email protected]>"); smtp.setServer("mail.aaa.com");
smtp.setUser("xxx");
smtp.setPass("yyy"); 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("发送失败");
} }}