<% String host = "yourmailhost"; String to = request.getParameter("to"); String from = request.getParameter("from"); String subject = request.getParameter("subject"); String messageText = request.getParameter("body"); ///////////////////////////////////////////////////////////////修改代码 if((to != null ) || form != null..................){ boolean sessionDebug = false;// Create some properties and get the default Session. Properties props = System.getProperties(); props.put("mail.host", host); props.put("mail.transport.protocol", "smtp");Session mailSession = Session.getDefaultInstance(props, null);// Set debug on the Session so we can see what is going on // Passing false will not echo debug info, and passing true // will. mailSession.setDebug(sessionDebug);// Instantiate a new MimeMessage and fill it with the // required information. Message msg = new MimeMessage(mailSession);msg.setFrom(new InternetAddress(from)); InternetAddress[] address = {new InternetAddress(to)}; msg.setRecipients(Message.RecipientType.TO, address); msg.setSubject(subject); msg.setSentDate(new Date()); msg.setText(messageText);// Hand the message to the default transport service // for delivery. Transport.send(msg);out.println("Mail was sent to " + to); out.println(" from " + from); out.println(" using host " + host + ".");%>
我又有的代码。
<%@ page contentType="text/html;charset=gb2312" %>
<%request.setCharacterEncoding("gb2312");%><!--中文处理代码--> <!--引入要用到的类库-->
<%@ page import="java.util.*,javax.mail.*"%>
<%@ page import="javax.mail.internet.*"%> <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"); Properties props=new Properties();//也可用Properties props = System.getProperties();
props.put("mail.smtp.host","smtp.163.com");//存储发送邮件服务器的信息
props.put("mail.smtp.auth","true");//同时通过验证
Session s=Session.getInstance(props);//根据属性新建一个邮件会话
s.setDebug(true); MimeMessage message=new MimeMessage(s);//由邮件会话新建一个消息对象 //设置邮件
InternetAddress from=new InternetAddress("");
message.setFrom(from);//设置发件人
InternetAddress to=new InternetAddress("[email protected]");
message.setRecipient(Message.RecipientType.TO,to);//设置收件人,并设置其接收类型为TO
message.setSubject("jsakfj");//设置主题
message.setText("kdjsfk");//设置信件内容
message.setSentDate(new Date());//设置发信时间 //发送邮件
message.saveChanges();//存储邮件信息
Transport transport=s.getTransport("smtp");
transport.connect("smtp.163.com","","");//以smtp方式登录邮箱
transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有
//已设好的收件人地址
transport.close(); %>
<div align="center">
<p><font color="#FF6600">发送成功!</font></p>
<p><a href="recmail.jsp">去看看我的信箱</a><br/>
<br/>
<a href="index.htm">再发一封</a> </p>
</div>
<%
}catch(MessagingException e){
out.println(e.toString());
}
%>
</body>
</html>
***报错如下***javax.mail.internet.AddressException: Illegal address in string ``'' 知道的兄弟帮帮忙看看。。我在次感恩不尽。
String to = request.getParameter("to");
String from = request.getParameter("from");
String subject = request.getParameter("subject");
String messageText = request.getParameter("body");这些应该做是否为"" 和NULL的异常处理...
检查下你的收发地址是否存在!
javax.mail.internet.InternetAddress.parse(InternetAddress.java:534)
javax.mail.internet.InternetAddress.<init>(InternetAddress.java:61)
org.apache.jsp.dianziyoujian.mail_jsp._jspService(mail_jsp.java:82)
从上面信息看应是空指针错误,请检查你的from和to变量的值是否为null
报错如下:
javax.servlet.ServletException: Sending failed;
nested exception is:
javax.mail.MessagingException: Could not connect to SMTP host: pop3.sohu.com, port: 25;
nested exception is:
java.net.ConnectException: Connection refused: connect
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.dianziyoujian.mail_jsp._jspService(mail_jsp.java:102)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause javax.mail.SendFailedException: Sending failed;
nested exception is:
javax.mail.MessagingException: Could not connect to SMTP host: pop3.sohu.com, port: 25;
nested exception is:
java.net.ConnectException: Connection refused: connect
javax.mail.Transport.send0(Transport.java:219)
javax.mail.Transport.send(Transport.java:81)
org.apache.jsp.dianziyoujian.mail_jsp._jspService(mail_jsp.java:87)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
我要怎么样设置我的机子。。呢!我在CMD 中能成功地发送 msgsend.java文件
用户名、密码怎么没有看到设置?
InternetAddress from=new InternetAddress(""); 怎么能为空呢?transport.connect("smtp.163.com","","");//以smtp方式登录邮箱
用户名跟密码都没有楼主看来是看不懂这些代码
transport.connect("smtp.163.com","user-name","password");
另:
InternetAddress from=new InternetAddress(""); // 这不是合法的mail地址
我的代码是从JSP 2.0***的书上超来的。。如果你有代码请给我一份。。我是刚刚学JSP的 很多问题我不能解决。。*yaray(雅睿,生活在别处,工作在别墅) ( )
我按你的方式做了可是还是不行。transport.connect(""); 这里出错了。
InternetAddress from=new InternetAddress("你的163的邮箱地址"); transport.connect("smtp.163.com","你的163邮箱的用户名","你的163邮箱的密码");//以smtp方式登录邮箱 这下该会改了吧?
建议别用tomcat5.0.27,换用tomcat4.1.30
Transport transport = sendMailSession.getTransport("smtp");
transport.connect("smtp.163.com","邮件地址(163的)","密码");
transport.sendMessage(newMessage,newMessage.getAllRecipients());
transport.close();前面的这样改:sendMailSession = Session.getInstance(props, null);
sendMailSession.setDebug(true);props.put("mail.smtp.host", "smtp.163.com");
props.put("mail.smtp.auth","true");
你好,乱码的怎么解决啊,指点下,谢谢先.
我的MSN:[email protected]
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import UploadFile.*;
import org.apache.log4j.*;public class AutoSendMail {
public AutoSendMail() {
}
public Log4J log4j = new Log4J();
String host = null;
String username = null;
String password = null;
public void setHost(String host){
this.host = host;
} public void setAccount(String username,String password){
this.username = username;
this.password = password;
}
public void AutoSendMail(String from,String to,String cc,String subject,String content){
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.163.com");
//props.put("mail.smtp.auth", "true");
try{
Session mailSession = Session.getDefaultInstance(props);
mailSession.setDebug(false);
Message message=new MimeMessage(mailSession);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.addRecipient(Message.RecipientType.CC,new InternetAddress(cc)); message.setSubject(subject);
message.setHeader("Dear All","");
message.setText(content);
message.saveChanges(); Transport transport = mailSession.getTransport("smtp");
transport.connect(host, username, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}catch(Exception ex){
log4j.error.error("Auto Send Mail Error : " + ex.getMessage());
System.out.println(ex.getMessage());
}
}
}
用我的,是正确的,你要加入mail.jar 与activtion.jar.我这个程序只能发送,没有写接受的,我已经用在我们的项目上了,还可以
import org.apache.log4j.*;
public Log4J log4j = new Log4J();
log4j.error.error("Auto Send Mail Error : " + ex.getMessage());
这几句代码,然后呢from,to,cc,subject,content需要用参数传进去,你要修改这句代码
props.put("mail.smtp.host", "smtp.163.com");修改成
props.put("mail.smtp.host", "你自己的邮件服务器");
绝对是可以的
你自己在程序里面判断一下,
if(输入条件 != null){
执行下面的代码。
}
String host = "yourmailhost";
String to = request.getParameter("to");
String from = request.getParameter("from");
String subject = request.getParameter("subject");
String messageText = request.getParameter("body");
///////////////////////////////////////////////////////////////修改代码
if((to != null ) || form != null..................){
boolean sessionDebug = false;// Create some properties and get the default Session.
Properties props = System.getProperties();
props.put("mail.host", host);
props.put("mail.transport.protocol", "smtp");Session mailSession = Session.getDefaultInstance(props, null);// Set debug on the Session so we can see what is going on
// Passing false will not echo debug info, and passing true
// will.
mailSession.setDebug(sessionDebug);// Instantiate a new MimeMessage and fill it with the
// required information.
Message msg = new MimeMessage(mailSession);msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(messageText);// Hand the message to the default transport service
// for delivery.
Transport.send(msg);out.println("Mail was sent to " + to);
out.println(" from " + from);
out.println(" using host " + host + ".");%>