请问怎么样才能连接上SOHU的邮箱,并且给其他的邮箱发送一封电邮? 用JAVA连SOHU(其他的也行)的邮箱,然后在程序中给163发一封电子邮件,请问该怎么做呢?谁有这方面的完整程序呀? 大家帮帮忙吧. 另外大家有没什么关于JAVAMAIL方面的学习资料推荐吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用javamail发送带附件的邮件 mail.java 代码 package mail; import java.util.* ; import java.io.* ; import javax.mail.* ; import javax.mail.internet.* ; import javax.activation.* ; public class Mail { //定义发件人、收件人、SMTP服务器、用户名、密码、主题、内容等 private String displayName; private String to; private String from; private String smtpServer; private String username; private String password; private String subject; private String content; private boolean ifAuth; //服务器是否要身份认证 private String filename=""; private Vector file = new Vector(); //用于保存发送附件的文件名的集合 /** * 设置SMTP服务器地址 */ public void setSmtpServer(String smtpServer){ this.smtpServer=smtpServer; } /** * 设置发件人的地址 */ public void setFrom(String from){ this.from=from; } /** * 设置显示的名称 */ public void setDisplayName(String displayName){ this.displayName=displayName; } /** * 设置服务器是否需要身份认证 */ public void setIfAuth(boolean ifAuth){ this.ifAuth=ifAuth; } /** * 设置E-mail用户名 */ public void setUserName(String username){ this.username=username; } /** * 设置E-mail密码 */ public void setPassword(String password){ this.password=password; } /** * 设置接收者 */ public void setTo(String to){ this.to=to; } /** * 设置主题 */ public void setSubject(String subject){ this.subject=subject; } /** * 设置主体内容 */ public void setContent(String content){ this.content=content; } /** * 该方法用于收集附件名 */ public void addAttachfile(String fname){ file.addElement(fname); } public Mail(){ } /** * 初始化SMTP服务器地址、发送者E-mail地址、用户名、密码、接收者、主题、内容 */ public Mail(String smtpServer,String from,String displayName,String username,String password,String to,String subject,String content){ this.smtpServer=smtpServer; this.from=from; this.displayName=displayName; this.ifAuth=true; this.username=username; this.password=password; this.to=to; this.subject=subject; this.content=content; } /** * 初始化SMTP服务器地址、发送者E-mail地址、接收者、主题、内容 */ public Mail(String smtpServer,String from,String displayName,String to,String subject,String content){ this.smtpServer=smtpServer; this.from=from; this.displayName=displayName; this.ifAuth=false; this.to=to; this.subject=subject; this.content=content; } /** * 发送邮件 */ public HashMap send(){ HashMap map=new HashMap(); map.put("state", "success"); String message="邮件发送成功!"; Session session=null; Properties props = System.getProperties(); props.put("mail.smtp.host", smtpServer); if(ifAuth){ //服务器需要身份认证 props.put("mail.smtp.auth","true"); SmtpAuth smtpAuth=new SmtpAuth(username,password); session=Session.getDefaultInstance(props, smtpAuth); }else{ props.put("mail.smtp.auth","false"); session=Session.getDefaultInstance(props, null); } session.setDebug(true); Transport trans = null; try { Message msg = new MimeMessage(session); try{ Address from_address = new InternetAddress(from, displayName); msg.setFrom(from_address); }catch(java.io.UnsupportedEncodingException e){ e.printStackTrace(); } InternetAddress[] address={new InternetAddress(to)}; msg.setRecipients(Message.RecipientType.TO,address); msg.setSubject(subject); Multipart mp = new MimeMultipart(); MimeBodyPart mbp = new MimeBodyPart(); mbp.setContent(content.toString(), "text/html;charset=gb2312"); mp.addBodyPart(mbp); if(!file.isEmpty()){//有附件 Enumeration efile=file.elements(); while(efile.hasMoreElements()){ mbp=new MimeBodyPart(); filename=efile.nextElement().toString(); //选择出每一个附件名 FileDataSource fds=new FileDataSource(filename); //得到数据源 mbp.setDataHandler(new DataHandler(fds)); //得到附件本身并至入BodyPart mbp.setFileName(fds.getName()); //得到文件名同样至入BodyPart mp.addBodyPart(mbp); } file.removeAllElements(); } msg.setContent(mp); //Multipart加入到信件 msg.setSentDate(new Date()); //设置信件头的发送日期 //发送信件 msg.saveChanges(); trans = session.getTransport("smtp"); trans.connect(smtpServer, username, password); trans.sendMessage(msg, msg.getAllRecipients()); trans.close(); }catch(AuthenticationFailedException e){ map.put("state", "failed"); message="邮件发送失败!错误原因:\n"+"身份验证错误!"; e.printStackTrace(); }catch (MessagingException e) { message="邮件发送失败!错误原因:\n"+e.getMessage(); map.put("state", "failed"); e.printStackTrace(); Exception ex = null; if ((ex = e.getNextException()) != null) { System.out.println(ex.toString()); ex.printStackTrace(); } } //System.out.println("\n提示信息:"+message); map.put("message", message); return map; } } SmtpAuth.java 代码 package mail; public class SmtpAuth extends javax.mail.Authenticator { private String username,password; public SmtpAuth(String username,String password){ this.username = username; this.password = password; } protected javax.mail.PasswordAuthentication getPasswordAuthentication() { return new javax.mail.PasswordAuthentication(username,password); } } JAVA新手问题 apache james邮件服务器问题,解决重答谢! 系统帮助文档怎么做 在web项目中 ? 我培训了J2EE,在南京好不好找工作呢???能做些什么啊?? SSH 框架开发问题,请给提供指导 struts2 的 web 目錄中不能有 struts2 目錄? java 中如何调用DB2存储过程返回的结果集 连接数据库问题(在线等待) 奇怪的问题,从来没有碰到过!在线等…… 微信公众平台开发中收藏的文件消息···我怎么才能响应 初学SOAP... 大家给讲讲关于SOAP的几个问题.... 哪位大侠如果知道的话救救我,关于word转pdf后限制打印
mail.java 代码
package mail;
import java.util.* ;
import java.io.* ;
import javax.mail.* ;
import javax.mail.internet.* ;
import javax.activation.* ;
public class Mail {
//定义发件人、收件人、SMTP服务器、用户名、密码、主题、内容等
private String displayName;
private String to;
private String from;
private String smtpServer;
private String username;
private String password;
private String subject;
private String content;
private boolean ifAuth; //服务器是否要身份认证
private String filename="";
private Vector file = new Vector(); //用于保存发送附件的文件名的集合
/**
* 设置SMTP服务器地址
*/
public void setSmtpServer(String smtpServer){
this.smtpServer=smtpServer;
}
/**
* 设置发件人的地址
*/
public void setFrom(String from){
this.from=from;
}
/**
* 设置显示的名称
*/
public void setDisplayName(String displayName){
this.displayName=displayName;
}
/**
* 设置服务器是否需要身份认证
*/
public void setIfAuth(boolean ifAuth){
this.ifAuth=ifAuth;
}
/**
* 设置E-mail用户名
*/
public void setUserName(String username){
this.username=username;
}
/**
* 设置E-mail密码
*/
public void setPassword(String password){
this.password=password;
}
/**
* 设置接收者
*/
public void setTo(String to){
this.to=to;
}
/**
* 设置主题
*/
public void setSubject(String subject){
this.subject=subject;
}
/**
* 设置主体内容
*/
public void setContent(String content){
this.content=content;
}
/**
* 该方法用于收集附件名
*/
public void addAttachfile(String fname){
file.addElement(fname);
}
public Mail(){
}
/**
* 初始化SMTP服务器地址、发送者E-mail地址、用户名、密码、接收者、主题、内容
*/
public Mail(String smtpServer,String from,String displayName,String username,String password,String to,String subject,String content){
this.smtpServer=smtpServer;
this.from=from;
this.displayName=displayName;
this.ifAuth=true;
this.username=username;
this.password=password;
this.to=to;
this.subject=subject;
this.content=content;
}
/**
* 初始化SMTP服务器地址、发送者E-mail地址、接收者、主题、内容
*/
public Mail(String smtpServer,String from,String displayName,String to,String subject,String content){
this.smtpServer=smtpServer;
this.from=from;
this.displayName=displayName;
this.ifAuth=false;
this.to=to;
this.subject=subject;
this.content=content;
}
/**
* 发送邮件
*/
public HashMap send(){
HashMap map=new HashMap();
map.put("state", "success");
String message="邮件发送成功!";
Session session=null;
Properties props = System.getProperties();
props.put("mail.smtp.host", smtpServer);
if(ifAuth){ //服务器需要身份认证
props.put("mail.smtp.auth","true");
SmtpAuth smtpAuth=new SmtpAuth(username,password);
session=Session.getDefaultInstance(props, smtpAuth);
}else{
props.put("mail.smtp.auth","false");
session=Session.getDefaultInstance(props, null);
}
session.setDebug(true);
Transport trans = null;
try {
Message msg = new MimeMessage(session);
try{
Address from_address = new InternetAddress(from, displayName);
msg.setFrom(from_address);
}catch(java.io.UnsupportedEncodingException e){
e.printStackTrace();
}
InternetAddress[] address={new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO,address);
msg.setSubject(subject);
Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
mbp.setContent(content.toString(), "text/html;charset=gb2312");
mp.addBodyPart(mbp);
if(!file.isEmpty()){//有附件
Enumeration efile=file.elements();
while(efile.hasMoreElements()){
mbp=new MimeBodyPart();
filename=efile.nextElement().toString(); //选择出每一个附件名
FileDataSource fds=new FileDataSource(filename); //得到数据源
mbp.setDataHandler(new DataHandler(fds)); //得到附件本身并至入BodyPart
mbp.setFileName(fds.getName()); //得到文件名同样至入BodyPart
mp.addBodyPart(mbp);
}
file.removeAllElements();
}
msg.setContent(mp); //Multipart加入到信件
msg.setSentDate(new Date()); //设置信件头的发送日期
//发送信件
msg.saveChanges();
trans = session.getTransport("smtp");
trans.connect(smtpServer, username, password);
trans.sendMessage(msg, msg.getAllRecipients());
trans.close();
}catch(AuthenticationFailedException e){
map.put("state", "failed");
message="邮件发送失败!错误原因:\n"+"身份验证错误!";
e.printStackTrace();
}catch (MessagingException e) {
message="邮件发送失败!错误原因:\n"+e.getMessage();
map.put("state", "failed");
e.printStackTrace();
Exception ex = null;
if ((ex = e.getNextException()) != null) {
System.out.println(ex.toString());
ex.printStackTrace();
}
}
//System.out.println("\n提示信息:"+message);
map.put("message", message);
return map;
}
} SmtpAuth.java 代码
package mail;
public class SmtpAuth extends javax.mail.Authenticator {
private String username,password;
public SmtpAuth(String username,String password){
this.username = username;
this.password = password;
}
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username,password);
}
}