大家来看看,这里发邮件还缺什么没。。。。。。。。。。。。。。。。
我搜索查看了相应的文章,看不出自己程序还缺什么;resin里显示邮件服务器已连上,认证已通过:"DEBUG:SMTPTransport connected to host "smtp.163.com",port:25"
"DEBUG SMTP SENT:emhlbmdnYg== "
"DEBUG SMTP RCVD:235 Authentication successful"
。。。
相关代码如下:
sendmail.java
---------------------
package com.ecncc.client.javamail;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import com.ecncc.util.*;
import com.jspsmart.upload.*;
import com.ecncc.client.javamail.bean.*;
import com.mail.*;
import com.activation.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
public class sendmail extends HttpServlet{
public void init() throws ServletException
{
}
static final private String CONTENT_TYPE = "text/html; charset=GBK";
int editman_sn = -1;
private ServletConfig config;
/**
* Init the servlet
*/
final public void init(ServletConfig config) throws ServletException
{
this.config = config;
}
final public ServletConfig getServletConfig()
{
return config;
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
int count=0;
SmartUpload mySmartUpload = new SmartUpload();
mySmartUpload.initialize(config,request,response);
String smtp = "";
String from = "";
String to = "";
String cc = "";
String bcc = "";
String subject="" ;
String body= "";
//smtp = request.getParameter("smtp");
smtp = mySmartUpload.getRequest().getParameter("smtp");
from = mySmartUpload.getRequest().getParameter("from");
to = mySmartUpload.getRequest().getParameter("to");
cc = mySmartUpload.getRequest().getParameter("cc");
bcc = mySmartUpload.getRequest().getParameter("bcc");
subject = mySmartUpload.getRequest().getParameter("subject");
body = mySmartUpload.getRequest().getParameter("body");
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>the to is:"+to);
mailbean one = new mailbean();
// one.setsmtp(smtp);
one.setfrom(from);
one.setto(to);
// one.setcc(cc);
// one.setbcc(bcc);
one.setsubject(subject);
one.setbody(body);
//one.mailtijiao();
com.ecncc.client.javamail.HTML.send(from,to,subject,body);
response.sendRedirect("/html/zltz/jsp/javamail.jsp");
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HTML.java
-------------------------------
package com.ecncc.client.javamail;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import com.ecncc.util.*;
import com.jspsmart.upload.*;
import com.ecncc.client.javamail.bean.*;
import com.mail.*;
import com.activation.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
public final class HTML{
public static String send(
// String smtp, /*SMTP主机地址*/
String from, /*发信人*/
String to, /*收信人*/
// String cc, /*抄送人*/
// String bcc, /*暗送人*/
String subject, /*主题*/
String body /*内容*/
) {
//变量声明
javax.mail.Session psession;
javax.mail.internet.MimeMessage mesg;
Properties props=new Properties();
props.put("mail.smtp.host","smtp.163.com");//这里填入smtp
props.put("mail.smtp.auth","true");
javax.mail.Session s=javax.mail.Session.getInstance(props);//根据属性新建一个邮件会话
s.setDebug(true);
try
{
mesg=new javax.mail.internet.MimeMessage(s); //创建一个邮件
mesg.setFrom(new javax.mail.internet.InternetAddress(from));//设置发信人
if(to!=null)
{
mesg.setRecipients(javax.mail.Message.RecipientType.TO,javax.mail.internet.InternetAddress.parse(to));
}//设置收信人
mesg.setSubject(subject,"gb2312");//设置邮件主题
mesg.setDataHandler(new javax.activation.DataHandler(new com.ecncc.client.javamail.
StringDataSource(body,"text/html"))); //设置邮件内容
javax.mail.Transport transport = s.getTransport("smtp");
transport.connect("smtp.163.com", "*****","*****");//这里是我再163.com邮箱的用户名和密码
transport.send(mesg); //最后发送邮件
}
catch(Exception e)
{
return "发送邮件失败:" + e.getMessage();
}
return "";
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
StringDataSource.java
--------------------------
package com.ecncc.client.javamail;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import com.ecncc.util.*;
import com.jspsmart.upload.*;
import com.ecncc.client.javamail.bean.*;
import com.mail.*;
import com.activation.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/
public class StringDataSource implements javax.activation.DataSource{
private java.lang.String data;
private java.lang.String type;
public StringDataSource(java.lang.String data,java.lang.String type){
this.data = data;
this.type = type;
}
public java.io.InputStream getInputStream() throws java.io.IOException{
return new java.io.StringBufferInputStream(data);
}
public java.io.OutputStream getOutputStream() throws java.io.IOException{
throw new java.io.IOException("it does not support this method now!");
}
public java.lang.String getContentType(){
return type;
}
public java.lang.String getName(){
return "jaf";
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
当然,还有一个.jsp文件(这里没写出),把“收信人、发信人、主题、内容”传过来(参数穿过来没问题的);但点击发送按钮后,程序也运行了,resin里也看到开头所说
的连接、认证等信息,但邮箱里就是收不到信,这是为什么?!有大侠在的话帮我一把,是不是程序的问题还是其它什么问题,谢谢了!!!