当前位置: 技术问答>java相关
求助:一个关于javamail的问题!!!
来源: 互联网 发布时间:2015-07-20
本文导语: 各位,为什么我的javamail总是在发送的时候,说无法连接到smtp服务器 错误信息为:Sending failed; nested exception is: javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25 源程序如下: mail.jsp ========...
各位,为什么我的javamail总是在发送的时候,说无法连接到smtp服务器
错误信息为:Sending failed; nested exception is: javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25
源程序如下:
mail.jsp
======================
邮件标题:
邮件正文:
收件人地址:
发件人地址:
您使用的SMTP服务器为:
send.jsp
======================
错误信息为:Sending failed; nested exception is: javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25
源程序如下:
mail.jsp
======================
邮件标题:
邮件正文:
收件人地址:
发件人地址:
您使用的SMTP服务器为:
send.jsp
======================
|
不是吧,我在我机器上试好了才给你的,真是丢老人了!
那就给你个有验证的。
这是发送程序,你把main()函数去掉,就可以做成JAVABEAN在JSP中引用了。
import java.io.*;
import java.util.*;
import java.util.Date;
import javax.activation.DataHandler;
import javax.mail.*;
import javax.mail.internet.*;
/**
*
*
*/
public class Mail{
public boolean sendMail(String subject,String body,String to){
try {
SmtpAuth sa=new SmtpAuth(); // 密码验证
sa.getuserinfo(你的用户名,口令);
Properties props=System.getProperties();
props.put("mail.smtp.auth","true");
props.put("mail.smtp.host","smtp.163.com");
Session sess=Session.getInstance(props,sa);
sess.setDebug(true);//调试信息
Message msg = new MimeMessage(sess);
msg.setDataHandler(new DataHandler(body,"text/html; charset=gb2312"));
msg.setFrom(new InternetAddress(你的EMAIL地址,显示名字));
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to,false));
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(body);
Transport.send(msg);
return true;
} catch (Exception e) {
return false;
}
}
public static void main(String[] args){
Mail m=new Mail();
m.sendMail("test","test javamail api",目标EMAIL地址);
}
}
这是认证函数:
import java.util.Date;
import java.util.*;
import java.util.Hashtable;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
/**
*
*
*/
public class SmtpAuth extends javax.mail.Authenticator{ //SMTP身份验证
private String user,password;
public void getuserinfo(String getuser,String getpassword){
user=getuser;
password=getpassword;
}
protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
return new javax.mail.PasswordAuthentication(user,password);
}
}
你要是再不行,那就是不可能的!!!!搞了我一个小时,试好了快给分啊。
那就给你个有验证的。
这是发送程序,你把main()函数去掉,就可以做成JAVABEAN在JSP中引用了。
import java.io.*;
import java.util.*;
import java.util.Date;
import javax.activation.DataHandler;
import javax.mail.*;
import javax.mail.internet.*;
/**
*
Title: Email
*
Description: 发送Email
*/
public class Mail{
public boolean sendMail(String subject,String body,String to){
try {
SmtpAuth sa=new SmtpAuth(); // 密码验证
sa.getuserinfo(你的用户名,口令);
Properties props=System.getProperties();
props.put("mail.smtp.auth","true");
props.put("mail.smtp.host","smtp.163.com");
Session sess=Session.getInstance(props,sa);
sess.setDebug(true);//调试信息
Message msg = new MimeMessage(sess);
msg.setDataHandler(new DataHandler(body,"text/html; charset=gb2312"));
msg.setFrom(new InternetAddress(你的EMAIL地址,显示名字));
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to,false));
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(body);
Transport.send(msg);
return true;
} catch (Exception e) {
return false;
}
}
public static void main(String[] args){
Mail m=new Mail();
m.sendMail("test","test javamail api",目标EMAIL地址);
}
}
这是认证函数:
import java.util.Date;
import java.util.*;
import java.util.Hashtable;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
/**
*
Title: Email身份验证
*
Description: Email身份验证
*/
public class SmtpAuth extends javax.mail.Authenticator{ //SMTP身份验证
private String user,password;
public void getuserinfo(String getuser,String getpassword){
user=getuser;
password=getpassword;
}
protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
return new javax.mail.PasswordAuthentication(user,password);
}
}
你要是再不行,那就是不可能的!!!!搞了我一个小时,试好了快给分啊。