javamail有一些新问题,高手们解决了一定会给分你们的。 你也可以看看后台打印了什么信息,其实后台的信息也很重要的21cn发邮件需要smtp认证,你需要写一个认证类,有没有啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://expert.csdn.net/Expert/topic/874/874715.xml?temp=.4623377 我的源代码为下面两大段,希望各位高手给于意见和解决谢谢。<%@ page language="java" import="java.util.*,javax.mail.*,javax.mail.internet.*,SmtpAuth,javax.activation.*"%><%try{ String host="smtp.21cn.com"; String from="****@21cn.com"; String to="****@21cn.com"; String username="****"; String password="****"; String body="hello ,this is only a test!"; // Get system properties // Properties props = System.getProperties(); 很多例子中是这样的,其实下面这句更好,可以用在applet中 Properties props = new Properties(); // Setup mail server props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.host", host); props.put("mail.smtp.port","25"); //props.put("mail.transport.protocol", "true"); //这样才能通过验证 System.out.println("error is cause?\n"); props.put("mail.smtp.auth", "true"); // Get session // Session sessionDLT = Session.getDefaultInstance(props);// javax.mail.PasswordAuthentication sa=new javax.mail.PasswordAuthentication(username,password); SmtpAuth sa=new SmtpAuth(); sa.getuserinfo(username,password); Session sessionDLT= Session.getInstance(props,sa); // watch the mail commands go by to the mail server sessionDLT.setDebug(true); // Define message MimeMessage message = new MimeMessage(sessionDLT); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject("Hello JavaMail"); message.setSentDate(new Date()); //message.setDataHandler(new javax.activation.DataHandler(new pipi.jaf.StringDataSource(body,"text/html"))); //out.println("Hello JavaMail"); //out.println("welcome to JavaMail"); message.setDataHandler(new DataHandler(body,"text/html;charset=us-ascii")); //message.setText("Welcome to JavaMail"); //message.setText(body); message.setContent("welcome","text/plain"); // message.saveChanges(); Transport transport = sessionDLT.getTransport("smtp"); // transport.connect(host, username, password); transport.send(message); // transport.send(message); //transport.sendMessage(message, message.getAllRecipients()); //transport.close(); out.println("this is a test."); // Send message // message.saveChanges();}catch(Exception e){ out.println(e.getMessage());}%>附上一个类SmtpAuthimport 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{ 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); }} 项目报价问题 jsp显示时过滤html标签 COOKIE问题.登录页面前加代码验证.新窗口打不开? 如何让文件中转一下,题目说不太清楚,高手请进 求助 JSP树型结构 Hibernate操作oracle里面的blob字段 如何用java开 一个程序可以 网页 做图 在tomcat 4.1.12 中,如何进行数据连接池的配置? java调用存储过程的错误 TOMCAT 部署遇到问题,求帮助 今天我生日,散分! 为什么会显示不出来,简单的htm , 答对立即给分
<%@ page language="java" import="java.util.*,javax.mail.*,javax.mail.internet.*,SmtpAuth,javax.activation.*"%>
<%try{
String host="smtp.21cn.com";
String from="****@21cn.com";
String to="****@21cn.com";
String username="****";
String password="****";
String body="hello ,this is only a test!"; // Get system properties
// Properties props = System.getProperties(); 很多例子中是这样的,其实下面这句更好,可以用在applet中
Properties props = new Properties();
// Setup mail server
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", host);
props.put("mail.smtp.port","25");
//props.put("mail.transport.protocol", "true"); //这样才能通过验证
System.out.println("error is cause?\n");
props.put("mail.smtp.auth", "true");
// Get session
// Session sessionDLT = Session.getDefaultInstance(props);
// javax.mail.PasswordAuthentication sa=new javax.mail.PasswordAuthentication(username,password);
SmtpAuth sa=new SmtpAuth();
sa.getuserinfo(username,password);
Session sessionDLT= Session.getInstance(props,sa);
// watch the mail commands go by to the mail server
sessionDLT.setDebug(true);
// Define message
MimeMessage message = new MimeMessage(sessionDLT);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("Hello JavaMail");
message.setSentDate(new Date());
//message.setDataHandler(new javax.activation.DataHandler(new pipi.jaf.StringDataSource(body,"text/html")));
//out.println("Hello JavaMail");
//out.println("welcome to JavaMail");
message.setDataHandler(new DataHandler(body,"text/html;charset=us-ascii"));
//message.setText("Welcome to JavaMail");
//message.setText(body);
message.setContent("welcome","text/plain");
// message.saveChanges(); Transport transport = sessionDLT.getTransport("smtp");
// transport.connect(host, username, password);
transport.send(message);
// transport.send(message);
//transport.sendMessage(message, message.getAllRecipients());
//transport.close();
out.println("this is a test.");
// Send message
// message.saveChanges();}catch(Exception e){
out.println(e.getMessage());
}%>
附上一个类SmtpAuth
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{
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);
}
}