***100分,谁有用java mail做的把表单直接发送到邮箱的网页例子,发送时不调用outlook的? http://blog.csdn.net/yzhxy2002/archive/2004/07/16/42763.aspx希望对你有帮助,jsp的我没有,asp的到有 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package com.ipv.mail;/** * Title: 发送简单邮件的类,不发送附件 * Description: send mail using smtp * Copyright: Copyright (c) 2002 * Company: ces * @author wz * @version 1.0 */import java.util.*;import javax.mail.*;import java.io.*;import javax.mail.internet.*;public class SendMail { private String m_strFrom; //从谁那边发出 private String m_strTo; //发达哪个邮箱 private String m_strSmtpHost; //从哪个SMTP服务器发出 private String m_strUser; //从哪个用户下发邮件 private String m_strPassword; //那个用户的密码是什么 private String m_strSubject; //邮件主题 private String m_strContent; //邮件内容 public SendMail() { this.m_strFrom = ""; this.m_strTo = ""; this.m_strSmtpHost = ""; this.m_strUser = ""; this.m_strPassword = ""; this.m_strSubject = ""; this.m_strContent = ""; } public void setFrom(String strFrom) { this.m_strFrom = strFrom; } public void setTo(String strTo) { this.m_strTo = strTo; } public void setSmtpHost(String strSmtpHost) { this.m_strSmtpHost = strSmtpHost; } public void setUser(String strUser) { this.m_strUser = strUser; } public void setPassword(String strPassword) { this.m_strPassword = strPassword; } public void setSubject(String strSubject) { this.m_strSubject = strSubject; } public void setContent(String strContent) { this.m_strContent = strContent; } //发送邮件 public void send() throws MessagingException { Properties props = new Properties(); props.put("mail.smtp.host", m_strSmtpHost); props.put("mail.smtp.auth", "true"); Session s = Session.getInstance(props); s.setDebug(false); MimeMessage message = new MimeMessage(s); // 给消息对象设置发件人/收件人/主题/发信时间 InternetAddress from = new InternetAddress(m_strFrom); message.setFrom(from); InternetAddress to = new InternetAddress(m_strTo); message.setRecipient(Message.RecipientType.TO, to); message.setSubject(m_strSubject); message.setSentDate(new Date()); // 给消息对象设置内容 BodyPart mdp = new MimeBodyPart(); //新建一个存放信件内容的BodyPart对象 mdp.setContent(m_strContent, "text/html;charset=gb2312"); //给BodyPart对象设置内容和格式/编码方式 Multipart mm = new MimeMultipart(); //新建一个MimeMultipart对象用来存放BodyPart对象(事实上可以存放多个) mm.addBodyPart(mdp); //将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart) message.setContent(mm); //把mm作为消息对象的内容 message.saveChanges(); Transport transport = s.getTransport("smtp"); transport.connect(m_strSmtpHost, m_strUser, m_strPassword); transport.sendMessage(message, message.getAllRecipients()); transport.close(); } public boolean sendMail(String strFrom, String strTo, String strSubject, String strContext) { String strSMTPHOST = ""; String strUSER = ""; String strPASSWORD = ""; String strSENDFROM = ""; InputStream is = getClass().getResourceAsStream("db.properties"); Properties dbProps = new Properties(); try { dbProps.load(is); strSMTPHOST = dbProps.getProperty("smtphost", ""); strUSER = dbProps.getProperty("user", ""); strPASSWORD = dbProps.getProperty("password", ""); strSENDFROM = dbProps.getProperty("strfrom", ""); } catch (Exception e) { } if (strFrom != null && !strFrom.trim().equals("")) { strSENDFROM = strFrom; } this.setSmtpHost(strSMTPHOST); this.setUser(strUSER); this.setPassword(strPASSWORD); this.setFrom(strSENDFROM); this.setTo(strTo); this.setSubject(strSubject); this.setContent(strContext); try { this.send(); } catch (Exception e) { return false; } return true; } public static void main(String[] args) { SendMail sendMail = new SendMail(); boolean aa = sendMail.sendMail("", "[email protected]", "sdfs", "sdfsdf"); System.out.println(aa); }} 把上面的东西搬到jsp上,提交一下就好了不过要设置smtp服务 javamail呵呵,楼主google一下,一大把 直接把上面的代码放在一个JSP页中的话,那客户要操作的那个发表单的JSP页是要另做一个,然后在那个JSP页里的action写上上面代码的JSP页名字吗? 还是把上面代码放在一个BEAN里,然后我怎么操作? 客户端的用html写,服务器端的jsp;HTML:<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>撰写邮件</title> </head> <body> <form action="testall.jsp" method="post" name="form1"> <table width="424" border="0" align="center" cellspacing="1" bgcolor="#006600" class="black" height="287"> <tr bgcolor="#FFFFFF"> <td width="102" height="29"><font face="宋体"><font size="3">收信人</font>:</font></td> <td width="308" height="23"> <input name="to1" type="text" id="to1" size="19"><font size="2"><i><font face="Basemic Times">@ </font></i></font><input name="to2" type="text" id="to2" size="17"></td> </tr> <tr bgcolor="#FFFFFF"> <td width="102" height="12"><font size="3"><font face="宋体">寄信人</font></font><font face="宋体">:</font></td> <td width="308" height="23"> <input name="from1" type="text" id="from1" size="19"><i><font face="Basemic Times" size="2">@ </font></i><input name="from2" type="text" id="from2" size="17"></td> </tr> <tr bgcolor="#FFFFFF"> <td width="102" height="14"><font size="3"><font face="宋体">用户名</font></font><font face="宋体">:</font></td> <td width="308" height="25"> <input name="yhm" type="text" id="yhm" size="41"> </tr> <tr bgcolor="#FFFFFF"><td width="102" height="14"><font size="3"><font face="宋体">密 码</font></font><font face="宋体">:</font></td> <td width="308" height="25"> <input name="mm" type="text" id="mm" size="41"> </tr><tr bgcolor="#FFFFFF"> <td width="102" height="25"><font size="3" face="宋体">主 题:</font></td> <td width="308" height="25"> <input name="title" type="text" id="title" size="41"></td> </tr> <tr> <td height="25" colspan="2" bgcolor="#FFFFFF" width="401"><font size="3"><font face="宋体">信件类型</font>: </font><select name="emailtype" id="emailtype" size="1"> <option value="text/plain">Text</option> <option value="text/html">Html</option> <option selected>-Select-</option></select></td> </tr> <tr> <td height="63" colspan="2" bgcolor="#FFFFFF" width="401"><textarea name="content" cols="56" rows="8" id="content"></textarea></td> </tr> <tr align="center" valign="bottom"> <td colspan="2" bgcolor="#FFFFFF" width="401" height="33"> <p align="left"><font size="3">附件(本地):</font> <input name="fj2" type="file" id="fj2" size="47"></p> </td> </tr> <tr align="center"> <td colspan="2" bgcolor="#FFFFFF" width="401" height="11"> <input type="submit" name="Submit" value="发送"> <input type="reset" name="Submit2" value="重置"></td> </tr> </table> </form> </body> </html> JSP:<%@ page contentType="text/html;charset=GB2312" %> <%request.setCharacterEncoding("gb2312");%> <%@ page import="java.util.*,javax.mail.*"%> <%@ page import="javax.mail.internet.*"%> <%@ page import="javax.activation.*"%><!--要发送附件必须引入该库--> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>发送成功</title> </head> <body> <% try{ String tto1=request.getParameter("to1"); String tto2=request.getParameter("to2"); String tfrom1=request.getParameter("from1"); String tfrom2=request.getParameter("from2"); String tyhm=request.getParameter("yhm"); String tmm=request.getParameter("mm"); String ttitle=request.getParameter("title"); String emailtype=request.getParameter("emailtype");//获取email类型 String tcontent=request.getParameter("content"); //String tfj1=request.getParameter("fj1"); String tfj2=request.getParameter("fj2"); String tfj3=request.getParameter("fj3"); String smtptype="";if(tfrom2.equals("163.com")){smtptype="smtp.163.com"; }//支持 else if(tfrom2.equals("126.com")){smtptype="smtp.126.com"; }//支持 else if(tfrom2.equals("21cn.com")){smtptype="smtp.21cn.com"; }//支持 else if(tfrom2.equals("yahoo.com.cn")){smtptype="smtp.mail.yahoo.com.cn"; }//支持else if(tfrom2.equals("tom.com")){smtptype="smtp.tom.com"; }//支持 else if(tfrom2.equals("263.net")){smtptype="smtp.263.net"; }//未试 else if(tfrom2.equals("mail.china.com")){smtptype="mail.china.com"; }//不支持 else if(tfrom2.equals("sina.com")){smtptype="smtp.sina.com"; }//不支持 Properties props=new Properties(); props.put("mail.smtp.host",smtptype); props.put("mail.smtp.auth","true"); Session s=Session.getInstance(props); s.setDebug(true); MimeMessage message=new MimeMessage(s); //给消息对象设置发件人/收件人/主题/发信时间 InternetAddress from=new InternetAddress(tfrom1+"@"+tfrom2,tfrom1); message.setFrom(from); InternetAddress to=new InternetAddress(tto1+"@"+tto2); message.setRecipient(Message.RecipientType.TO,to); message.setSubject(ttitle); message.setSentDate(new Date()); Multipart mm=new MimeMultipart();//新建一个MimeMultipart对象用来存放多个BodyPart对象 //设置信件文本内容 BodyPart mdp=new MimeBodyPart();//新建一个存放信件内容的BodyPart对象 mdp.setContent(tcontent,emailtype+";charset=gb2312");//给BodyPart对象设置内容和格式/编码方式 mm.addBodyPart(mdp);//将含有信件内容的BodyPart加入到MimeMultipart对象中 //设置信件的附件1(自定义附件:直接将所设文本内容加到自定义文件中作为附件发送) //mdp=new MimeBodyPart();//新建一个存放附件的BodyPart DataHandler dh=new DataHandler(tfj2,"text/plain;charset=gb2312"); //新建一个DataHandler对象,并设置其内容和格式/编码方式 //mdp.setFileName("text.txt");//加上这句将作为附件发送,否则将作为信件的文本内容 //mdp.setDataHandler(dh);//给BodyPart对象设置内容为dh //mm.addBodyPart(mdp);//将含有附件的BodyPart加入到MimeMultipart对象中 //设置信件的附件2(用本地上的文件作为附件) mdp=new MimeBodyPart(); FileDataSource fds=new FileDataSource(tfj2); dh=new DataHandler(fds); int ddd=tfj2.lastIndexOf("\\"); String fname=tfj2.substring(ddd);//提取文件名 String ffname=new String(fname.getBytes("gb2312"),"ISO8859-1");//处理文件名是中文的情况 mdp.setFileName(ffname);//可以和原文件名不一致,但最好一样 mdp.setDataHandler(dh); mm.addBodyPart(mdp); //设置信件的附件3(用远程文件作为附件) //mdp=new MimeBodyPart(); /*URL urlfj=new URL(tfj3); URLDataSource ur=new URLDataSource(urlfj); //注:这里用的参数只能为URL对象,不能为URL字串,在前面类介绍时有误(请谅解),这里纠正一下. dh=new DataHandler(ur); int ttt=tfj3.lastIndexOf("/"); String urlname=tfj3.substring(ttt); //String urlfname=new String(urlname.getBytes("gb2312"),"ISO8859-1");//不知怎么回事,这里不能处理中文问题 mdp.setFileName(urlname); mdp.setDataHandler(dh); mm.addBodyPart(mdp); */message.setContent(mm);//把mm作为消息对象的内容 message.saveChanges(); Transport transport=s.getTransport("smtp"); transport.connect(smtptype,tyhm,tmm); transport.sendMessage(message,message.getAllRecipients()); transport.close(); %> <div align="center"> <p><font color="#FF6600">发送成功!</font></p> <br> <a href="m.html">再发一封</a> </p> </div> <% }catch(MessagingException e){ out.println(e.toString()); } %> </body> </html> 这个程序有个问题,就是一定要加上附件,我很早写的,后来没有用,就没有改。需要的话,楼主自己改一改吧 <%@ page contentType="text/html;charset=gb2312" %><%request.setCharacterEncoding("gb2312");%><!--中文处理代码--><!--引入要用到的类库--><%@ page import="java.util.*,javax.mail.*"%><%@ page import="javax.mail.internet.*"%><%@ page import="java.util.Date"%><%@ page import="java.sql.*"%><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>发送成功</title></head><body><% try{ //从html表单中获取邮件信息 String tto=request.getParameter("to"); String ttitle=request.getParameter("title"); String tcontent=request.getParameter("content"); tcontent=""; String myEmail=request.getParameter("myEmail"); out.print(myEmail); //************************************************ out.print(ttitle+tcontent); Properties props=new Properties();//也可用Properties props = System.getProperties(); // props.put("mail.smtp.host","smtp.163.net");//存储发送邮件服务器的信息 props.put("mail.smtp.host","221.136.100.35"); props.put("mail.smtp.auth","true");//同时通过验证 Session s=Session.getInstance(props);//根据属性新建一个邮件会话 s.setDebug(true); MimeMessage message=new MimeMessage(s);//由邮件会话新建一个消息对象 //设置邮件 InternetAddress from=new InternetAddress("[email protected]"); message.setFrom(from);//设置发件人 InternetAddress to=new InternetAddress(tto); message.setRecipient(Message.RecipientType.TO,to);//设置收件人,并设置其接收类型为TO message.setSubject(ttitle);//设置主题 message.setText(tcontent);//设置信件内容 message.setSentDate(new Date());//设置发信时间 //发送邮件 message.saveChanges();//存储邮件信息 Transport transport=s.getTransport("smtp"); //transport.connect("smtp.163.net","boy","iloveyou");//以smtp方式登录邮箱 transport.connect("221.136.100.35","[email protected]","cn.etoall"); transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有 //已设好的收件人地址 transport.close();%><div align="center"><p><font color="#FF6600">发送成功!</font></p></div><% }catch(MessagingException e) { out.println(e.toString()); }%> </body></html>****************************************************************上面代码中的to变量是不是要指点发送到的邮箱地址? 这个是我用servlet写的一个方法, public static void sendEmail(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ String tto="[email protected]"; String ttitle="hello"; StringBuffer Content=new StringBuffer(""); Content.append("Subject:\n"); Content.append("Message Text:\n"); Content.append("\n"); Content.append("\n"); Content.append("\n"); Content.append("Your e-mail:\n"); Content.append("Your Name:\n"); Content.append("Name of company\n"); Content.append("Web Site:\n"); Properties props=new Properties();//也可用Properties props = System.getProperties(); props.put("mail.smtp.host","smtp.126.com");//存储发送邮件服务器的信息 props.put("mail.smtp.auth","true");//同时通过验证 Session s=Session.getInstance(props);//根据属性新建一个邮件会话 s.setDebug(true); MimeMessage message=new MimeMessage(s);//由邮件会话新建一个消息对象// 设置邮件 try{ InternetAddress from=new InternetAddress("[email protected]"); message.setFrom(from);//设置发件人 InternetAddress to=new InternetAddress(tto); message.setRecipient(Message.RecipientType.TO,to);//设置收件人,并设置其接收类型为TO message.setSubject(ttitle);//设置主题 message.setText(Content.toString());//设置信件内容 message.setSentDate(new Date());//设置发信时间// 发送邮件 message.saveChanges();//存储邮件信息 Transport transport=s.getTransport("smtp"); transport.connect("smtp.126.com","yuhua163","yuhua163");//以smtp方式登录邮箱 transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有// 已设好的收件人地址 transport.close(); System.err.print("email suss"); }catch(Exception ex){ ex.printStackTrace(); System.err.print("email lost"); } } 这俩本书有什么区别呀??Ajax的 我用javascript創建并提交的from為什么傳入Action里的from為null? struts 1.2的多模块配置问题: 关于HibernateTemplate中的一些方法问题 如何理解this关键字 getType的问题? 呵呵 哪位仁兄对邮件服务器熟呀, 我想问几个问题 一个莫名其妙的问题?请教? 怎样让输入的文本不支持html语言??? 求教大神,急!! 如何使用WebWork2自带的拦截器防止重复提交? 求教JSP页面中调用了JavaBean出现了显示顺序问题!
* Title: 发送简单邮件的类,不发送附件
* Description: send mail using smtp
* Copyright: Copyright (c) 2002
* Company: ces
* @author wz
* @version 1.0
*/
import java.util.*;
import javax.mail.*;
import java.io.*;
import javax.mail.internet.*;public class SendMail {
private String m_strFrom; //从谁那边发出
private String m_strTo; //发达哪个邮箱
private String m_strSmtpHost; //从哪个SMTP服务器发出
private String m_strUser; //从哪个用户下发邮件
private String m_strPassword; //那个用户的密码是什么
private String m_strSubject; //邮件主题
private String m_strContent; //邮件内容 public SendMail() {
this.m_strFrom = "";
this.m_strTo = "";
this.m_strSmtpHost = "";
this.m_strUser = "";
this.m_strPassword = "";
this.m_strSubject = "";
this.m_strContent = "";
} public void setFrom(String strFrom) {
this.m_strFrom = strFrom;
} public void setTo(String strTo) {
this.m_strTo = strTo;
} public void setSmtpHost(String strSmtpHost) {
this.m_strSmtpHost = strSmtpHost;
} public void setUser(String strUser) {
this.m_strUser = strUser;
} public void setPassword(String strPassword) {
this.m_strPassword = strPassword;
} public void setSubject(String strSubject) {
this.m_strSubject = strSubject;
} public void setContent(String strContent) {
this.m_strContent = strContent;
} //发送邮件
public void send() throws MessagingException {
Properties props = new Properties();
props.put("mail.smtp.host", m_strSmtpHost);
props.put("mail.smtp.auth", "true");
Session s = Session.getInstance(props);
s.setDebug(false);
MimeMessage message = new MimeMessage(s);
// 给消息对象设置发件人/收件人/主题/发信时间
InternetAddress from = new InternetAddress(m_strFrom);
message.setFrom(from);
InternetAddress to = new InternetAddress(m_strTo);
message.setRecipient(Message.RecipientType.TO, to);
message.setSubject(m_strSubject);
message.setSentDate(new Date());
// 给消息对象设置内容
BodyPart mdp = new MimeBodyPart(); //新建一个存放信件内容的BodyPart对象
mdp.setContent(m_strContent, "text/html;charset=gb2312"); //给BodyPart对象设置内容和格式/编码方式
Multipart mm = new MimeMultipart(); //新建一个MimeMultipart对象用来存放BodyPart对象(事实上可以存放多个)
mm.addBodyPart(mdp); //将BodyPart加入到MimeMultipart对象中(可以加入多个BodyPart)
message.setContent(mm); //把mm作为消息对象的内容
message.saveChanges();
Transport transport = s.getTransport("smtp");
transport.connect(m_strSmtpHost, m_strUser, m_strPassword);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} public boolean sendMail(String strFrom, String strTo, String strSubject,
String strContext) {
String strSMTPHOST = "";
String strUSER = "";
String strPASSWORD = "";
String strSENDFROM = ""; InputStream is = getClass().getResourceAsStream("db.properties");
Properties dbProps = new Properties();
try {
dbProps.load(is);
strSMTPHOST = dbProps.getProperty("smtphost", "");
strUSER = dbProps.getProperty("user", "");
strPASSWORD = dbProps.getProperty("password", "");
strSENDFROM = dbProps.getProperty("strfrom", ""); }
catch (Exception e) { }
if (strFrom != null && !strFrom.trim().equals("")) {
strSENDFROM = strFrom;
}
this.setSmtpHost(strSMTPHOST);
this.setUser(strUSER);
this.setPassword(strPASSWORD);
this.setFrom(strSENDFROM);
this.setTo(strTo);
this.setSubject(strSubject);
this.setContent(strContext);
try {
this.send();
}
catch (Exception e) {
return false;
} return true;
} public static void main(String[] args) {
SendMail sendMail = new SendMail();
boolean aa = sendMail.sendMail("", "[email protected]", "sdfs", "sdfsdf");
System.out.println(aa); }}
不过要设置smtp服务
呵呵,楼主google一下,一大把
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>撰写邮件</title>
</head>
<body>
<form action="testall.jsp" method="post" name="form1">
<table width="424" border="0" align="center" cellspacing="1" bgcolor="#006600" class="black" height="287"> <tr bgcolor="#FFFFFF">
<td width="102" height="29"><font face="宋体"><font size="3">收信人</font>:</font></td>
<td width="308" height="23"> <input name="to1" type="text" id="to1" size="19"><font size="2"><i><font face="Basemic Times">@
</font></i></font><input name="to2" type="text" id="to2" size="17"></td>
</tr> <tr bgcolor="#FFFFFF">
<td width="102" height="12"><font size="3"><font face="宋体">寄信人</font></font><font face="宋体">:</font></td>
<td width="308" height="23"> <input name="from1" type="text" id="from1" size="19"><i><font face="Basemic Times" size="2">@
</font></i><input name="from2" type="text" id="from2" size="17"></td>
</tr> <tr bgcolor="#FFFFFF">
<td width="102" height="14"><font size="3"><font face="宋体">用户名</font></font><font face="宋体">:</font></td>
<td width="308" height="25"> <input name="yhm" type="text" id="yhm" size="41">
</tr> <tr bgcolor="#FFFFFF">
<td width="102" height="14"><font size="3"><font face="宋体">密 码</font></font><font face="宋体">:</font></td>
<td width="308" height="25"> <input name="mm" type="text" id="mm" size="41">
</tr><tr bgcolor="#FFFFFF">
<td width="102" height="25"><font size="3" face="宋体">主 题:</font></td>
<td width="308" height="25"> <input name="title" type="text" id="title" size="41"></td>
</tr>
<tr>
<td height="25" colspan="2" bgcolor="#FFFFFF" width="401"><font size="3"><font face="宋体">信件类型</font>:
</font><select name="emailtype" id="emailtype" size="1">
<option value="text/plain">Text</option>
<option value="text/html">Html</option>
<option selected>-Select-</option>
</select></td>
</tr>
<tr>
<td height="63" colspan="2" bgcolor="#FFFFFF" width="401"><textarea name="content" cols="56" rows="8" id="content"></textarea></td>
</tr> <tr align="center" valign="bottom">
<td colspan="2" bgcolor="#FFFFFF" width="401" height="33">
<p align="left"><font size="3">附件(本地):</font>
<input name="fj2" type="file" id="fj2" size="47"></p>
</td>
</tr>
<tr align="center">
<td colspan="2" bgcolor="#FFFFFF" width="401" height="11"> <input type="submit" name="Submit" value="发送">
<input type="reset" name="Submit2" value="重置"></td>
</tr>
</table>
</form>
</body>
</html>
JSP:
<%@ page contentType="text/html;charset=GB2312" %>
<%request.setCharacterEncoding("gb2312");%>
<%@ page import="java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%@ page import="javax.activation.*"%><!--要发送附件必须引入该库--> <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>发送成功</title>
</head>
<body>
<%
try{
String tto1=request.getParameter("to1");
String tto2=request.getParameter("to2");
String tfrom1=request.getParameter("from1");
String tfrom2=request.getParameter("from2");
String tyhm=request.getParameter("yhm");
String tmm=request.getParameter("mm");
String ttitle=request.getParameter("title");
String emailtype=request.getParameter("emailtype");//获取email类型
String tcontent=request.getParameter("content");
//String tfj1=request.getParameter("fj1");
String tfj2=request.getParameter("fj2");
String tfj3=request.getParameter("fj3"); String smtptype="";
if(tfrom2.equals("163.com"))
{smtptype="smtp.163.com";
}//支持
else if(tfrom2.equals("126.com"))
{smtptype="smtp.126.com";
}//支持
else if(tfrom2.equals("21cn.com"))
{smtptype="smtp.21cn.com";
}//支持
else if(tfrom2.equals("yahoo.com.cn"))
{smtptype="smtp.mail.yahoo.com.cn";
}//支持
else if(tfrom2.equals("tom.com"))
{smtptype="smtp.tom.com";
}//支持
else if(tfrom2.equals("263.net"))
{smtptype="smtp.263.net";
}//未试
else if(tfrom2.equals("mail.china.com"))
{smtptype="mail.china.com";
}//不支持
else if(tfrom2.equals("sina.com"))
{smtptype="smtp.sina.com";
}//不支持
Properties props=new Properties();
props.put("mail.smtp.host",smtptype);
props.put("mail.smtp.auth","true");
Session s=Session.getInstance(props);
s.setDebug(true); MimeMessage message=new MimeMessage(s); //给消息对象设置发件人/收件人/主题/发信时间
InternetAddress from=new InternetAddress(tfrom1+"@"+tfrom2,tfrom1);
message.setFrom(from);
InternetAddress to=new InternetAddress(tto1+"@"+tto2);
message.setRecipient(Message.RecipientType.TO,to);
message.setSubject(ttitle);
message.setSentDate(new Date()); Multipart mm=new MimeMultipart();//新建一个MimeMultipart对象用来存放多个BodyPart对象 //设置信件文本内容
BodyPart mdp=new MimeBodyPart();//新建一个存放信件内容的BodyPart对象
mdp.setContent(tcontent,emailtype+";charset=gb2312");//给BodyPart对象设置内容和格式/编码方式
mm.addBodyPart(mdp);//将含有信件内容的BodyPart加入到MimeMultipart对象中 //设置信件的附件1(自定义附件:直接将所设文本内容加到自定义文件中作为附件发送)
//mdp=new MimeBodyPart();//新建一个存放附件的BodyPart
DataHandler dh=new DataHandler(tfj2,"text/plain;charset=gb2312");
//新建一个DataHandler对象,并设置其内容和格式/编码方式
//mdp.setFileName("text.txt");//加上这句将作为附件发送,否则将作为信件的文本内容
//mdp.setDataHandler(dh);//给BodyPart对象设置内容为dh
//mm.addBodyPart(mdp);//将含有附件的BodyPart加入到MimeMultipart对象中 //设置信件的附件2(用本地上的文件作为附件)
mdp=new MimeBodyPart();
FileDataSource fds=new FileDataSource(tfj2);
dh=new DataHandler(fds);
int ddd=tfj2.lastIndexOf("\\");
String fname=tfj2.substring(ddd);//提取文件名
String ffname=new String(fname.getBytes("gb2312"),"ISO8859-1");//处理文件名是中文的情况
mdp.setFileName(ffname);//可以和原文件名不一致,但最好一样
mdp.setDataHandler(dh);
mm.addBodyPart(mdp);
//设置信件的附件3(用远程文件作为附件)
//mdp=new MimeBodyPart();
/*URL urlfj=new URL(tfj3);
URLDataSource ur=new URLDataSource(urlfj);
//注:这里用的参数只能为URL对象,不能为URL字串,在前面类介绍时有误(请谅解),这里纠正一下.
dh=new DataHandler(ur);
int ttt=tfj3.lastIndexOf("/");
String urlname=tfj3.substring(ttt);
//String urlfname=new String(urlname.getBytes("gb2312"),"ISO8859-1");//不知怎么回事,这里不能处理中文问题
mdp.setFileName(urlname);
mdp.setDataHandler(dh);
mm.addBodyPart(mdp);
*/
message.setContent(mm);//把mm作为消息对象的内容 message.saveChanges();
Transport transport=s.getTransport("smtp");
transport.connect(smtptype,tyhm,tmm);
transport.sendMessage(message,message.getAllRecipients());
transport.close(); %>
<div align="center">
<p><font color="#FF6600">发送成功!</font></p> <br>
<a href="m.html">再发一封</a> </p>
</div>
<%
}catch(MessagingException e){
out.println(e.toString());
} %>
</body>
</html>
这个程序有个问题,就是一定要加上附件,我很早写的,后来没有用,就没有改。
需要的话,楼主自己改一改吧
<%request.setCharacterEncoding("gb2312");%><!--中文处理代码-->
<!--引入要用到的类库-->
<%@ page import="java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%@ page import="java.util.Date"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>发送成功</title>
</head><body>
<% try{ //从html表单中获取邮件信息
String tto=request.getParameter("to");
String ttitle=request.getParameter("title");
String tcontent=request.getParameter("content");
tcontent="";
String myEmail=request.getParameter("myEmail");
out.print(myEmail);
//************************************************
out.print(ttitle+tcontent);
Properties props=new Properties();//也可用Properties props = System.getProperties();
// props.put("mail.smtp.host","smtp.163.net");//存储发送邮件服务器的信息
props.put("mail.smtp.host","221.136.100.35");
props.put("mail.smtp.auth","true");//同时通过验证
Session s=Session.getInstance(props);//根据属性新建一个邮件会话
s.setDebug(true); MimeMessage message=new MimeMessage(s);//由邮件会话新建一个消息对象 //设置邮件
InternetAddress from=new InternetAddress("[email protected]");
message.setFrom(from);//设置发件人
InternetAddress to=new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO,to);//设置收件人,并设置其接收类型为TO
message.setSubject(ttitle);//设置主题
message.setText(tcontent);//设置信件内容
message.setSentDate(new Date());//设置发信时间 //发送邮件
message.saveChanges();//存储邮件信息
Transport transport=s.getTransport("smtp");
//transport.connect("smtp.163.net","boy","iloveyou");//以smtp方式登录邮箱
transport.connect("221.136.100.35","[email protected]","cn.etoall");
transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有
//已设好的收件人地址
transport.close();
%>
<div align="center">
<p><font color="#FF6600">发送成功!</font></p>
</div>
<%
}catch(MessagingException e)
{
out.println(e.toString());
}
%>
</body>
</html>
****************************************************************
上面代码中的to变量是不是要指点发送到的邮箱地址?
throws ServletException, IOException{
String tto="[email protected]";
String ttitle="hello";
StringBuffer Content=new StringBuffer("");
Content.append("Subject:\n");
Content.append("Message Text:\n");
Content.append("\n");
Content.append("\n");
Content.append("\n");
Content.append("Your e-mail:\n");
Content.append("Your Name:\n");
Content.append("Name of company\n");
Content.append("Web Site:\n"); Properties props=new Properties();//也可用Properties props = System.getProperties();
props.put("mail.smtp.host","smtp.126.com");//存储发送邮件服务器的信息
props.put("mail.smtp.auth","true");//同时通过验证
Session s=Session.getInstance(props);//根据属性新建一个邮件会话
s.setDebug(true); MimeMessage message=new MimeMessage(s);//由邮件会话新建一个消息对象// 设置邮件
try{
InternetAddress from=new InternetAddress("[email protected]");
message.setFrom(from);//设置发件人
InternetAddress to=new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO,to);//设置收件人,并设置其接收类型为TO
message.setSubject(ttitle);//设置主题
message.setText(Content.toString());//设置信件内容
message.setSentDate(new Date());//设置发信时间// 发送邮件
message.saveChanges();//存储邮件信息
Transport transport=s.getTransport("smtp");
transport.connect("smtp.126.com","yuhua163","yuhua163");//以smtp方式登录邮箱
transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有
// 已设好的收件人地址
transport.close();
System.err.print("email suss");
}catch(Exception ex){
ex.printStackTrace();
System.err.print("email lost");
} }