代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'Login.jsp' starting page</title>
</head>
<body>
<form action="sendmail.jsp" method=post>
<table>
<tr><td>收件人:<input type=text name=to></td></tr>
<tr><td>发件人:<input type=text name=from></td></tr>
<tr><td>主题:<input type=text name=subject></td></tr>
<tr><td>内容;<textarea name=content></textarea>
<tr><td><input type=submit value=send ><input type=reset value=aaa></td></tr>
</table>
</form>
</body>
</html>
处理页面:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="javax.mail.*, javax.mail.internet.*, javax.activation.*, java.util.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'sendmail.jsp' starting page</title>
</head>
<% request.setCharacterEncoding("gb2312"); %>
<body>
<%
try{
Properties props=System.getProperties();
Session sendmailSession;
Transport transport;
sendmailSession=Session.getDefaultInstance(props,null);
props.put("mail.smtp.host","smtp.sina.com.cn");
//props.put("mail.smtp.prot","25");
Message newMessage=new MimeMessage(sendmailSession);
newMessage.setFrom(new InternetAddress(request.getParameter("from")));
newMessage.addRecipient(Message.RecipientType.TO,new InternetAddress(request.getParameter("to")));
newMessage.setSubject(request.getParameter("subject"));
newMessage.setSentDate(new Date());
newMessage.setText(request.getParameter("content"));
transport =sendmailSession.getTransport("smtp");
transport.send(newMessage);
%>
<p>你的邮件已发送,请返回。</p>
<%
}
catch(MessagingException e){
out.print("错误原因是:"+e);
}
%>
</body>
</html>
错误原因是:javax.mail.SendFailedException: Sending failed; nested exception is: class javax.mail.SendFailedException: Invalid Addresses; nested exception is: class javax.mail.SendFailedException: 554
是不是我没装SMTP服务器的问题啊?要装这个服务器吗?哪位能帮我改改吗?
----------------解决方案--------------------------------------------------------
收件人我写的是:xing@sina.com
----------------解决方案--------------------------------------------------------
Properties props = new Properties();
SendMailAuthenticator au = new SendMailAuthenticator();
String user = "xxx";
String pwd = "xxx";
au.check(user, pwd);
//假设你用这个email
props.put("mail.smtp.host", "smtp.163.com");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.auth", "true");
Session session = Session.getInstance(props, au);
String smtp="smtp.163.com";
String username=user;
String userEmail=user+"@"+smtp.substring(5, smtp.length());
System.out.println("userEmail="+userEmail);
MimeMessage message = new MimeMessage(session);
//处理中文乱码
String form="xxx";
form=new String(form.getBytes(),"8859_1");
message.setFrom(new InternetAddress("("+form+")"+userEmail));
InternetAddress[] address = { new InternetAddress(
"xx@xxx.com") };
message.setRecipients(Message.RecipientType.TO, address);
message.setSubject("测试邮件");
message.setSentDate(new Date());
message.setText("这是一个测试邮件: " + getRandKeys(6));
Transport.send(message);
大致就这样
----------------解决方案--------------------------------------------------------
那 user和pwd怎么得到啊,
props.put("mail.smtp.host", "smtp.163.com");//这个有什么用啊?应该怎么设置啊,如果我是发给新浪的,或其他的呢???
谢谢啊,在线..
----------------解决方案--------------------------------------------------------
user pwd 你不是问我吧,你的email啊,ld
props.put("mail.smtp.host", "smtp.163.com");//这个有什么用啊?应该怎么设置啊,如果我是发给新浪的,或其他的呢???
发给谁就写谁咯。
----------------解决方案--------------------------------------------------------
我这里有个类,你可以试一下,是我们做项目时用到的:
package eshop.bean;
import java.util.*;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class MailFacade {
public static boolean sendMail(String strSMTP, String strTitle,
String strContent, String strUserName, String strPassword,
String strAddress, String strTarddress){
boolean bolReturnValue = false;
try{
Properties mailPros = new Properties();
mailPros.put("mail.smtp.host",strSMTP);
mailPros.put("mail.smtp.auth", "true");
Session mailSession = Session.getDefaultInstance(mailPros);
mailSession.setDebug(true);
MimeMessage message = new MimeMessage(mailSession);
//设置发信人
message.setFrom(new InternetAddress(strAddress));
//收信人
message.setRecipient(Message.RecipientType.TO, new InternetAddress(strTarddress));
// 邮件标题
message.setSubject(strTitle);
// 邮件内容
message.setText(strContent);
// 保存
message.saveChanges();
Transport transport = mailSession.getTransport("smtp");
transport.connect(strSMTP,strUserName,strPassword);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
bolReturnValue=true;
}catch(Exception e){
bolReturnValue=false;
}
finally{
return bolReturnValue;
}
}
public static void main(String args[]) throws Exception {
Properties mailPros = new Properties();
mailPros.put("mail.smtp.host", "smtp.163.com");
mailPros.put("mail.smtp.auth", "true");
Session mailSession = Session.getDefaultInstance(mailPros);
mailSession.setDebug(true);
MimeMessage message = new MimeMessage(mailSession);
// 设置发信人
message.setFrom(new InternetAddress("yanwu401909@163.com"));
// 收信人
message.setRecipient(Message.RecipientType.TO, new InternetAddress(
"yanwu401909@163.com"));
// 邮件标题
message.setSubject("你好");
// 邮件内容
message.setText("你好,TestTestTestTestTestTestTest");
// 保存
message.saveChanges();
Transport transport = mailSession.getTransport("smtp");
transport.connect("smtp.163.com", "yanwu401909", "(这里是自己的密码)");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
System.out.println("发送ok!");
}
}
----------------解决方案--------------------------------------------------------