急求javamail发送邮件的问题
我在web页面表单中是这样的:
用户填写电子邮件和邮件内容2项内容,点击发送就可以发送到我指定的邮箱中。
但是在javamail发送邮件时,是需要验证发送者邮件的用户名和密码的,我怎么知道呢?这样的情况如何实现发送邮件呢,因为我想用foxmail收到该人发的邮件后,立即就可以回复他的邮件啊。
请教大虾门帮忙啊。
===============================================
代码如下:
//取得接收邮件的地址
String to = "hgggbbxe@126.com ";
if (to.trim().length() == 0) {
response.sendRedirect( "MessageShow.jsp?message= " + "接收邮件的地址不能为空。 ");
return;
} //取得发送邮件的地址
String from = "hg3ddr@163.com ";
if (from.trim().length() == 0) {
response.sendRedirect( "MessageShow.jsp?message= " + "发送邮件的地址不能为空。 ");
return;
} //取得SMTP邮件服务器的地址
String host = "smtp.163.com ";
if (host.trim().length() == 0) {
response.sendRedirect( "MessageShow.jsp?message= " + "SMTP邮件服务器地址不能为空。 ");
return;
}
//联接SMTP邮件服务器是否需要输入用户名和密码
boolean auth = true;
//Boolean.getBoolean(request.getParameter( "auth "));
//取得邮件内容
String msgText = " <meta http-equiv=Content-Type content=text/html; charset=utf-8> 邮件的内容 <br> "
+ " <img src= 'http://www.mldn.cn/image/tuiguang/tuiguang3.gif ' width=400> <br> 邮件的内容邮件的内容邮件的内容邮件的内容 "
+ "[hg3000发送] <br> 邮件的内容邮件的内容 ";
if (msgText.trim().length() == 0) {
response.sendRedirect( "MessageShow.jsp?message= " + "邮件的内容不能为空。 ");
return;
}
//取得邮件的标题
String subject = "测试邮件的信 ";
if (subject.trim().length() == 0) {
response.sendRedirect( "MessageShow.jsp?message= " + "邮件标题不能为空。 ");
return;
} //取得联接SMTP服务器的用户名
String username = "hg3ddr ";
//取得联接SMTP服务器的密码
String password = "123456 ";
//在服务器显示发送邮件信息
boolean debug = true;
//创建邮件服务器的属性类
Properties props = new Properties();
//加入SMTP服务器的名字
props.put( "mail.smtp.host ", host);
//加入联接SMTP服务器是否需要用户检验的变量
props.put( "mail.smtp.auth ", String.valueOf(auth));
//加入是否显示发送邮件时信息的变量
if (debug) {
props.put( "mail.debug ", String.valueOf(debug));
}
//创建发送邮件进程
Session sessions = Session.getInstance(props, null);
//定义是否显示发送邮件时的信息
sessions.setDebug(debug);
try {
//创建邮件发送包
Message msg = new MimeMessage(sessions);
//设置邮件发送包的发送地址
msg.setFrom(new InternetAddress(from));
//创建邮件接收地址类
InternetAddress[] address = { new InternetAddress(to),new InternetAddress( "hgbd@qwserv.com ") };
//设置邮件发送包的接收地址
msg.setRecipients(Message.RecipientType.TO, address);
//设置邮件主题
msg.setSubject(subject);
//设置邮件的发送时间
msg.setSentDate(new Date());
//设置邮件的内容
//msg.setText(msgText);
msg.setContent( " <meta http-equiv= 'Content-Type ' content= 'text/html; charset=utf-8 '> "
+ msgText, "text/html;charset=utf-8 ");
//联接SMTP服务器时需要输入用户和密码的执行代码
if (auth) {
Transport transport = sessions.getTransport( "smtp ");
//使用用户名和密码联接SMTP服务器
transport.connect(host, username, password);
//发送邮件
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
} else {
//联接SMTP服务器时不需要输入用户和密码的执行代码
Transport.send(msg);
}
out.print( "邮件发送成功! ");
} catch (Exception ex) {
ex.printStackTrace();
return;
}
[解决办法]
用户名密码就是发件人所使用邮箱的SMTP用户名和密码
邮件都通过发送人邮箱发送
另外,你可以指定reply-to,这样foxmail中reply的时候就会回复到指定的邮箱了
简而言之 发件人是网站 但是回复接受者是用户自己输入的邮箱地址