如果不支持附件的话,那还有什么好的呢?有一个例子很清楚了呀。/**
*Class TestEmail
*@author yancheng(j-share.onchina.net)
*@version 1.0.0
*
* use write socket to send email.
*/
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.net.*;public class TestEmail extends HttpServlet
{
private static final String CONTENT_TYPE = "text/html";
//修改以下服务器及邮箱信息。
private static final String SMTPSERVER="smtp.netease.com";
private static final String FROMMAIL = "[email protected]";
private static final String RECPTOMAIL ="[email protected]";
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
Socket s = new Socket(SMTPSERVER,25);
PrintWriter ou = new PrintWriter(s.getOutputStream(),true);
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
out.println("<html>");
out.println("<head><title>TestEmail</title></head>");
out.println("<body>");
String instr = null;
boolean isOk = false;
try{
ou.println("HELO:"+SMTPSERVER);
out.println(in.readLine()); ou.println("MAIL FROM:"+FROMMAIL);
instr = in.readLine();
out.println(instr);
if(instr.startsWith("250")) isOk = true;
else isOk=false; if(isOk){
ou.println("RCPT TO:"+RECPTOMAIL);
instr = in.readLine();
out.println(instr);
if(instr.startsWith("250")) isOk=true;
else isOk = false;
}
if(isOk){
ou.println("DATA");
instr = in.readLine();
out.println(instr);
if(instr.startsWith("250")) isOk = true;
else isOk=false;
}
ou.println("这是一个测试邮件");
ou.println(".");
instr = in.readLine();
out.println(instr);
if(instr.startsWith("250")) isOk=true;
else isOk=false;
ou.println("QUIT");
s.close();
}
catch(IOException x)
{
x.printStackTrace(System.err);
}
out.println("<p>ok</p>");
out.println("</body></html>");
}
public void destroy()
{
}
}
*Class TestEmail
*@author yancheng(j-share.onchina.net)
*@version 1.0.0
*
* use write socket to send email.
*/
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.net.*;public class TestEmail extends HttpServlet
{
private static final String CONTENT_TYPE = "text/html";
//修改以下服务器及邮箱信息。
private static final String SMTPSERVER="smtp.netease.com";
private static final String FROMMAIL = "[email protected]";
private static final String RECPTOMAIL ="[email protected]";
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
Socket s = new Socket(SMTPSERVER,25);
PrintWriter ou = new PrintWriter(s.getOutputStream(),true);
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
out.println("<html>");
out.println("<head><title>TestEmail</title></head>");
out.println("<body>");
String instr = null;
boolean isOk = false;
try{
ou.println("HELO:"+SMTPSERVER);
out.println(in.readLine()); ou.println("MAIL FROM:"+FROMMAIL);
instr = in.readLine();
out.println(instr);
if(instr.startsWith("250")) isOk = true;
else isOk=false; if(isOk){
ou.println("RCPT TO:"+RECPTOMAIL);
instr = in.readLine();
out.println(instr);
if(instr.startsWith("250")) isOk=true;
else isOk = false;
}
if(isOk){
ou.println("DATA");
instr = in.readLine();
out.println(instr);
if(instr.startsWith("250")) isOk = true;
else isOk=false;
}
ou.println("这是一个测试邮件");
ou.println(".");
instr = in.readLine();
out.println(instr);
if(instr.startsWith("250")) isOk=true;
else isOk=false;
ou.println("QUIT");
s.close();
}
catch(IOException x)
{
x.printStackTrace(System.err);
}
out.println("<p>ok</p>");
out.println("</body></html>");
}
public void destroy()
{
}
}
解决方案 »
- No getter method for property login of bean org.apache.struts.taglib.html.BEAN (解决了马上结贴)
- 急求一个用jfreechart做趋势图的解决方案,先谢谢大家了,我会给分的
- 关于判断权限问题.看用户是否登陆
- 请问有人在配置eclipse和tomcat的时候出现过这种问题吗……
- 下拉框怎样动态显示我点击我选的内容
- 探讨一下csdn用的frame框架
- jsp取数据后如何分页?
- 请教如何在JSP里加减时间?急急急急急!
- request?
- 酒店客房管理系统学校毕业设计
- jsp与asp在w2k平台上比较究竟有何优势,特别是asp.net出现后,php呢?
- gb2312编码只是简单的解决了中文问题, 如果做到简繁日文输入都能处理?
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;public class CMail
{
public String ret=null;
public CMail(String to,String from,String subject,String body)
{
Properties props=new Properties();
props.put("mail.smtp.host","online.sh.cn");//邮件服务器不一定对
javax.mail.Session session=javax.mail.Session.getDefaultInstance(props,null);
try{
Message msg=new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address={new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO,address);
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(body);
Transport.send(msg);
}catch(Exception ee){
ret+="failed! "+ee.toString();
}
}
public static void main(String[] args)
{
String note="a java class for sending email\n";
note+="usage: new CMail(to,from,subject,body)";
System.out.println(note);
}
}还有发送网页的:
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class SendHtml{
public SendHtml(String to,String from,String subject,String filepath)
{
Properties props=new Properties();
props.put("mail.smtp.host","online.sh.cn");
Session session=Session.getDefaultInstance(props,null);
try{
Message msg=new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address={new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO,address);
msg.setSubject(subject);
collect(filepath,msg);
msg.setSentDate(new Date());
Transport.send(msg);
}catch(Exception ee){
ee.printStackTrace();
}
}
public void collect(String str, Message msg)
throws MessagingException, IOException {
String subject = msg.getSubject();
StringBuffer sb = new StringBuffer();
sb.append("");
try{
RandomAccessFile file=new RandomAccessFile(str,"r");
int filePointer=0;
int fileLength=(int)file.length();
file.seek(0);
String tmp="";
while(filePointer<fileLength){
filePointer++;
tmp=file.readLine();
if(tmp==null)
break;
else
tmp=tmp.trim();
sb.append(tmp+"\n");
}
file.close();
}catch(Exception e){
sb.append("<HTML>\n");
sb.append("<HEAD>\n");
sb.append("<TITLE>\n");
sb.append(subject + "\n");
sb.append("</TITLE>\n");
sb.append("</HEAD>\n");
sb.append("<BODY>\n");
sb.append("Sorry,there is some errors!");
sb.append("</body></html>");
}
//sb.append(str+"\n");
msg.setDataHandler(new DataHandler(new ByteArrayDataSource(sb.toString(), "text/html")));
}
} 还有带附件发送的、还有收邮件的,不就官方网站上写的很清楚,并且我们早就已经用过了(现在还在用,主要用于程序出错监控)
ok?
避免无意义的重复吗?就拿这个发邮件的bean来说,调用时非常方便,就是众所周知的那几行代码,而主要的功能都封装在了bean里。卖了也方便,源代码不会泄漏。这个bean确实简单,
但他起码代表了一种思想。如果各位都把自己平日里编写的bean拿这里来卖,那么大家就不会
重复劳动了,还可以提高各位的工作效率,各位挣钱也方便,卖bean的挣了钱,买bean的挣了工资,甚至能长薪水。说不定能提高整个中国的软件开发水平呢?
部分同意ocry的观点。把大家写的bean来交流是可以减轻工作量,但是为什么不能考虑源码开发的方式呢?free bean ? ok?
Saving your 50 yuans.
把各自的版权信息封装在bean里也容易做到。不会影响到各自的利益。
目前国内的计算机水平远落后于发达国家,正需要我们之间的合作才能进步啊。