可以的,很容易啊。给你个例子啊,用126邮箱发邮件到新浪的例子;import java.util.*;
import javax.mail.*;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.*;
import java.util.Date;
import javax.activation.*;
import java.io.*;public class A { private MimeMessage mimeMsg; //MIME邮件对象 private Session session; //邮件会话对象
private Properties props; //系统属性
private boolean needAuth = false; //smtp是否需要认证 private String username = ""; //smtp认证用户名和密码
private String password = ""; private Multipart mp; //Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象 /**

*/
public A() {
// setSmtpHost(getConfig.mailHost); //如果没有指定邮件服务器,就从getConfig类中获取
createMimeMessage();
} public A(String smtp) {
setSmtpHost(smtp);
createMimeMessage();
} /**
* @param hostName String
*/
public void setSmtpHost(String hostName) {
System.out.println("设置系统属性:mail.smtp.host = " + hostName);
if (props == null)
props = System.getProperties(); //获得系统属性对象 props.put("mail.smtp.host", hostName); //设置SMTP主机
} /**
* @return boolean
*/
public boolean createMimeMessage() {
try {
System.out.println("准备获取邮件会话对象!");
session = Session.getDefaultInstance(props, null); //获得邮件会话对象
} catch (Exception e) {
System.err.println("获取邮件会话对象时发生错误!" + e);
return false;
} System.out.println("准备创建MIME邮件对象!");
try {
mimeMsg = new MimeMessage(session); //创建MIME邮件对象
mp = new MimeMultipart(); return true;
} catch (Exception e) {
System.err.println("创建MIME邮件对象失败!" + e);
return false;
}
} /**
* @param need boolean
*/
public void setNeedAuth(boolean need) {
System.out.println("设置smtp身份认证:mail.smtp.auth = " + need);
if (props == null)
props = System.getProperties(); if (need) {
props.put("mail.smtp.auth", "true");
} else {
props.put("mail.smtp.auth", "false");
}
} /**
* @param name String
* @param pass String
*/
public void setNamePass(String name, String pass) {
username = name;
password = pass;
} /**
* @param mailSubject String
* @return boolean
*/
public boolean setSubject(String mailSubject) {
System.out.println("设置邮件主题!");
try {
mimeMsg.setSubject(mailSubject);
return true;
} catch (Exception e) {
System.err.println("设置邮件主题发生错误!");
return false;
}
} /**
* @param mailBody String
*/
public boolean setBody(String mailBody) {
try {
BodyPart bp = new MimeBodyPart();
bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=gb2312>" + mailBody, "text/html;charset=GB2312");
mp.addBodyPart(bp); return true;
} catch (Exception e) {
System.err.println("设置邮件正文时发生错误!" + e);
return false;
}
} /**
* @param name String
* @param pass String
*/
public boolean addFileAffix(String filename) { System.out.println("增加邮件附件:" + filename); try {
BodyPart bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(fileds.getName()); mp.addBodyPart(bp); return true;
} catch (Exception e) {
System.err.println("增加邮件附件:" + filename + "发生错误!" + e);
return false;
}
} /**
* @param name String
* @param pass String
*/
public boolean setFrom(String from) {
System.out.println("设置发信人!");
try {
mimeMsg.setFrom(new InternetAddress(from)); //设置发信人
return true;
} catch (Exception e) {
return false;
}
} /**
* @param name String
* @param pass String
*/
public boolean setTo(String to) {
if (to == null)
return false; try {
mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
return true;
} catch (Exception e) {
return false;
} } /**
* @param name String
* @param pass String
*/
public boolean setCopyTo(String copyto) {
if (copyto == null)
return false;
try {
mimeMsg.setRecipients(Message.RecipientType.CC, (Address[]) InternetAddress.parse(copyto));
return true;
} catch (Exception e) {
return false;
}
} /**
* @param name String
* @param pass String
*/
public boolean sendout() {
try {
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
System.out.println("正在发送邮件....");
Session mailSession = Session.getInstance(props, null);

Transport transport = mailSession.getTransport("smtp");

transport.connect((String) props.get("mail.smtp.host"), username, password);

transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));
// transport.send(mimeMsg); System.out.println("发送邮件成功!");
transport.close(); return true;
} catch (Exception e) {
System.err.println("邮件发送失败!" + e);
return false;
}
} /**
* Just do it as this
*/
public static void main(String[] args) { String mailbody = "<meta http-equiv=Content-Type content=text/html; charset=gb2312>" + "<form action=/cgi-bin/post-query method=POST><select name=fruits><option>Banana<option selected>Apple<option value=My_Favorite>Orange</select><p><input type=submit><input type=reset></form>"; A themail = new A("smtp.126.com");
themail.setNeedAuth(true); if (themail.setSubject("标题") == false)
return;
if (themail.setBody(mailbody) == false)
return;
                  if (themail.setTo("[email protected]") == false)  //set to
return;
                  if (themail.setFrom("[email protected]") == false) //set from
return;
themail.setNamePass("xiaopeipei", "000");//用户名和密码 if (themail.sendout() == false)
return;
}
}

解决方案 »

  1.   

    可以啊,mail的内容放一个网页进去就行了~~
      

  2.   

    感谢大家先!!在问一下大家呀,不好意思(:
    1.kingmaxno1(学会飞翔):"把表单的内容也加入到发送的信息里",这也是我的问题的关键呀.
    2.xiaopeipei2004(小裴):我看了你的代码了,非常感谢!现在没有时间去运行一下.你在main里的
    setbody的时候那个String mailbody=.... 是自己组装的呀.我的疑问也在那,就是放表单的jsp文件调你的bean的时候,你的mailbody怎么组装呀?
    3.kidman521(我说美丽的意义是永久珍藏,你说美丽的意义是从此遗忘) :mail的内容放一个网页进去就行了?,呵呵,不明白.
      

  3.   

    前面提交的,在后面页request成String,然后mailbody+=String;
    可以吗,什么叫组装啊,我不太明白
      

  4.   

    不好意思呀,我还是有点不明白呀.
    我再把问题说的详细一点.前面是一个html文件,html文件里有一个表单,表单有许多内容.
    比如:姓名...,籍贯...,性别...,个人简介....,我要把这些东西发到某个人的邮箱里
      

  5.   

    StringBuffer body=new StringBuffer();
    body.append("<html><body><table border=\"1\" align=\"center\" bordercolorlight=\"#2351a7\" bordercolordark=\"#f9f9ec\" style=\"border-style: fixed; border-collapse:collapse; border-color: #2351a7\">");
    body.append("<tr><td width=\"100\" align=\"center\"><font face=\"Arial\" size=\"3\">Model No</font></td>");
    body.append("<td width=\"80\" align=\"center\"><font face=\"Arial\" size=\"3\">Destination</font></td>");
    body.append("<td width=\"60\" align=\"center\"><font face=\"Arial\" size=\"3\">Rej Lot</font></td></tr>");
    body.append("</table>");
    body.append("</body></html>");
    //把html写到body里面
    mysend.setMyHtmlMessage(body.toString());//把body作为mail的内容这样即可实现~~~
      

  6.   

    我明白大家的意思了.但是表单里的数据怎样放进去呀?如果都用request.getStringParameter(""),然后在象你们说的那样写成一个string,是不是很麻烦呀?不知道用xml怎样~~