我写了一个有关用JavaMail 发邮件的软件,一切配置正常,测试时显示发送失败,我输的邮箱绝对没问题,希望各位帮忙解答一下,代码如下
writerletter.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<html>
</head>
<title>
写邮件内容
</title>
</head>
<body>
<form name="form1" method="post" action="sendMail.jsp">
<table width="100" border="1" align="center" cellspacing="1">
<tr>
<td width="34%">收信人地址:</td>
<td width="107"><input type="text" name="to" id="to"></td>
</tr>
<tr>
<td width="45%">主题:</td>
<td width="107"><input type="text" name="title" id="title"></td>
</td>
</tr>
<tr>
<td height="107" colspan="2">
<textarea name="content" cols="50" rows="5" id="content"></textarea></td>
</tr>
<tr align="center">
<td border="2">
<input type="submit" name="submit" value="提交">
<input type="reset" name="res" value="重输"></td>
</tr>
</table>
</form>
</body>
</html>
此代码没问题
sendMail.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<!--引入要用到的类库-->
<%@ page import="java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%!
public String codeToString(String str)
{
String s=str;
try
{
byte tempB[]=s.getBytes("ISO-8859-1");
s=new String(tempB);
return s;
}
catch(Exception e)
{
return s;
}
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html,charset=gb2312">
<title>发送邮件的结果</title>
</head>
<body>
<%
try
{
String to_mail=codeToString(request.getParameter("to"));
String to_title=codeToString(request.getParameter("title"));
String to_content=codeToString(request.getParameter("content"));
Properties props=new Properties();
props.put("mail.smpt.host","smpt.126.com");
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(to_mail);
message.setRecipient(Message.RecipientType.TO,to);
message.setSubject(to_title);
message.setText(to_content);
message.setSentDate(new Date());
message.saveChanges();
Transport transport=s.getTransport("smpt");
transport.connect("smpt.126.com","xjllpp","7639797");
transport.sendMessage(message,message.getAllRecipients());
transport.close();
%>
<div align="center">
<p>发送成功!</p>
<%
}
catch(MessagingException e)
{
out.print("发送失败!");
}
%>
</body>
</html>
此代码显示:发送失败
谢谢各位啦!
writerletter.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<html>
</head>
<title>
写邮件内容
</title>
</head>
<body>
<form name="form1" method="post" action="sendMail.jsp">
<table width="100" border="1" align="center" cellspacing="1">
<tr>
<td width="34%">收信人地址:</td>
<td width="107"><input type="text" name="to" id="to"></td>
</tr>
<tr>
<td width="45%">主题:</td>
<td width="107"><input type="text" name="title" id="title"></td>
</td>
</tr>
<tr>
<td height="107" colspan="2">
<textarea name="content" cols="50" rows="5" id="content"></textarea></td>
</tr>
<tr align="center">
<td border="2">
<input type="submit" name="submit" value="提交">
<input type="reset" name="res" value="重输"></td>
</tr>
</table>
</form>
</body>
</html>
此代码没问题
sendMail.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<!--引入要用到的类库-->
<%@ page import="java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%!
public String codeToString(String str)
{
String s=str;
try
{
byte tempB[]=s.getBytes("ISO-8859-1");
s=new String(tempB);
return s;
}
catch(Exception e)
{
return s;
}
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html,charset=gb2312">
<title>发送邮件的结果</title>
</head>
<body>
<%
try
{
String to_mail=codeToString(request.getParameter("to"));
String to_title=codeToString(request.getParameter("title"));
String to_content=codeToString(request.getParameter("content"));
Properties props=new Properties();
props.put("mail.smpt.host","smpt.126.com");
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(to_mail);
message.setRecipient(Message.RecipientType.TO,to);
message.setSubject(to_title);
message.setText(to_content);
message.setSentDate(new Date());
message.saveChanges();
Transport transport=s.getTransport("smpt");
transport.connect("smpt.126.com","xjllpp","7639797");
transport.sendMessage(message,message.getAllRecipients());
transport.close();
%>
<div align="center">
<p>发送成功!</p>
<%
}
catch(MessagingException e)
{
out.print("发送失败!");
}
%>
</body>
</html>
此代码显示:发送失败
谢谢各位啦!
解决方案 »
- 循环出来的下拉框的默认值怎么设定`
- jsp中怎样在当前页面点击按钮将指定的table表格导出为 excel文件?
- fckeidtor2.6.4不能上传图片
- 求简单的登陆界面代码(初学者)
- mysql操作报错
- 怎么有异常也不显示?
- 同时给多个人发mail的问题?
- 急,如何让IE直接打开一个word文档?????下载文件是不让出现对话框??????
- 虽然没有分但是这个问题对我很重要?在jsp中能用的SQL2000 -jdbc驱动程序到java bean中却不能用??
- Invalid result location value/parameter
- request
- 一个表单只需要一个submit就足够?而且无所谓位置?
因为你用126的服务器发它需要SSL验证的。
除非你有自己的邮件服务器。
那样测试是可以通过的。
我简单的修改了下你的代码:
<%@ page contentType="text/html;charset=gb2312"%>
<!--引入要用到的类库-->
<%@ page import="java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%>
<%!
public String codeToString(String str)
{
String s=str;
try
{
byte tempB[]=s.getBytes("ISO-8859-1");
s=new String(tempB);
return s;
}
catch(Exception e)
{
return s;
}
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html,charset=gb2312">
<title> 发送邮件的结果 </title>
</head>
<body>
<%
class MailAuthenticator extends Authenticator {
private String strUser;
private String strPwd;
public MailAuthenticator(String user, String password) {
this.strUser = user;
this.strPwd = password;
}
}
try
{
String to_mail=codeToString(request.getParameter("to"));
String to_title=codeToString(request.getParameter("title"));
String to_content=codeToString(request.getParameter("content"));
String user = "[email protected]"; //内网服务器注册好的mail地址
String password = "111111"; //密码
String host = "192.168.150.25" ;//本公司的内网邮件服务器
Properties props=new Properties();
props.put("mail.smpt.host",host);
props.put("mail.smtp.auth","true");
MailAuthenticator myauth = new MailAuthenticator(user, password);
Session mailSession = Session.getInstance(props, myauth);
mailSession.setDebug(true);
Message message = new MimeMessage(mailSession);
message.setFrom(new InternetAddress(user));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to_mail));
message.setSubject(to_title);
message.setText(to_content);
message.saveChanges();
Transport transport = mailSession.getTransport("smtp");
transport.connect(host, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
%>
<div align="center">
<p> 发送成功! </p>
<%
}
catch(MessagingException e)
{
out.print("发送失败!");
}
%>
</body>
</html>