用JavaMail发送邮件问题??? 你发邮件用的是sina的smtp服务器,这个服务器需要认证才能给你发邮件,要解决这样的问题,最好是找一个不需要认证的服务器,例如自己公司的邮件服务器也可以, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的这种方式并不可靠,因为很多电子邮局的smtp服务器要求我们通过验证,所以用这种方式发邮件时,只能发给同类邮箱(即相同smtp的邮箱),甚至有时同类邮箱也发不出去,可以试改一下下面的写法,会很好用://设置邮件InternetAddress from=new InternetAddress("[email protected]");message.setFrom(from);//设置发件人InternetAddress to=new InternetAddress(tto);message.setRecipient(Message.RecipientType.TO,to);//设置收件人,并设置其接收类型为TOmessage.setSubject(ttitle);//设置主题message.setText(tcontent);//设置信件内容message.setSentDate(new Date());//设置发信时间//发送邮件message.saveChanges();//存储邮件信息Transport transport=s.getTransport("smtp");transport.connect("smtp.163.net","boy","iloveyou");//以smtp方式登录邮箱transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有已设好的收件人地址transport.close(); 还是认证的问题,如 littlef 所说,你用不需要认证的公司邮箱,提供了账号和密码即可给外部邮箱发信,但是反过来不行至于怎么过那个认证,我也很想知道,搞定了希望能分享一下。 To Raulgodle(Raul): 照你说的那样改过了,还是同样的错误。 其实我原来的代码中也有处理认证的部分<%! %>中的声明部分就是。 因为是帖在这当然不可能公布真正的用户名和密码,那样我的邮箱不要被盗!JavaMail API还是没什么实用。发个邮件都发不出去,我的毕业设计怎么完成啊?我必须实现发HTML表格形式的邮件到各种邮件地址。至少是知名的hotmail,sina,yahoo,等。各位大哥,帮帮小妹吧!!!! 还有一篇关于页面延时转换问题也请大家看看搜索java jsp/servlet/关键字:%作者: nancygreen谢谢大家!!!! 有些邮件服务器需要验证的,可以象下面一样设置props.put("mail.smtp.host","smtp.sina.com"); props.put("mail.smtp.auth","true");props.put("mail.smtp.user","[email protected]");props.put("mail.smtp.password","test"); mail.jar&activation.jarall in your classpath? 是啊,mail.jar&activation.jar的设置都没问题 俺的javaMail也没试成功,郁闷。 首先,你要知道的是sina的服务器是不能随便用的,好象是因为防止恶意发垃圾邮件。所以,你上面的程序无论如何也无法成功的,因为你无法通过验证。但是你的程序应该来说是没问题的!建议你申请一个别的邮箱,比如,etang的。我就是用这个做的实验,已经成功了,至于怎么用sina的服务器来收发邮件,我在仔细研究后,给你答复。下面是程序<%@ page contentType="text/html; charset=GBK" %><%@ page language="java" import="java.io.*,java.util.*,javax.mail.*,javax.mail.internet.*,javax.activation.*"%><%try{ String host="smtp.free.etang.com"; String from="[email protected]"; String to="[email protected]"; String username="username";//下面的用户名和密码一定要对 String password="password"; Properties props = new Properties(); Session sendMailSession; Transport transport; props.put("mail.smtp.host", host); props.put("mail.smtp.auth", "true");//这一句也不能掉 sendMailSession = Session.getInstance(props, null); MimeMessage newMessage = new MimeMessage(sendMailSession); newMessage.setFrom(new InternetAddress(from)); newMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(to)); String subject="这是一个实验!"; byte[] tmp1byte=subject.getBytes("ISO-8859-1"); subject=new String(tmp1byte); newMessage.setSubject(subject); String content="helleo."; newMessage.setText(content); newMessage.setSentDate(new Date()); transport = sendMailSession.getTransport("smtp"); transport.connect(host,username,password); transport.sendMessage(newMessage,newMessage.getRecipients(Message.RecipientType.TO)); }catch(MessagingException e){ out.println(e.toString());}%> 你所的问题我已经都 搞定了,并且在sina的服务器上发邮件也成功过了,我用下面的程序一共在三个邮件服务器上试过smtp.sina.com.cn和smtp.163.com和smtp.free.etang.com上都进行过测试,在这其中,你应该注意的是stmp.sina.com.cn这个邮件服务器,通常在申请sina邮箱的时候,你得到的是三样东东,拿我的来说,有邮箱[email protected],密码******,用户名fuzyandy,它和一般的邮箱不同,一般的邮箱如[email protected],它的用户名就是fuzuyuan,所以对于我上面的sina邮箱到底要用哪一个用户名呢,是fuzyandy还是fuzuyuan呢?最好的办法,就是在outlook上配置一下,经测试,应该是fuzuyuan,用fuzyandy无论如何是连不上的,但进www.sina.com.cn去登录自己的邮箱却要用fuzyandy,很变吧,我也不知道是为什么,希望有人能告诉我!下面是运行的程序,在执行时,多等一下,只到dos的屏幕上出现press and key....那句话时在查看自己的邮箱中是否有邮件。package mypackage;import javax.mail.*;import javax.mail.internet.*;import java.util.*;public class SendEmail{ public static void main(String args[]) throws Exception { String host = "smtp.sina.com.cn"; String from = "[email protected]"; String to = "[email protected]"; String username = "××××";//注意sina邮箱的填写,一定要按我上面说的来写 String password = "××××"; try{ // Get system properties // Properties props = System.getProperties(); 很多例子中是这样的,其实下面这句更好,可以用在applet中 Properties props = new Properties(); // Setup mail server props.put("mail.smtp.host", host); props.put("mail.smtp.auth", "true"); //这样才能通过验证 // Get session Session session = Session.getDefaultInstance(props); // watch the mail commands go by to the mail server //session.setDebug(true); // Define message MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO,new InternetAddress(to)); message.setSubject("这是一个测试"); message.setText("****************************************************"); message.setSentDate(new java.util.Date()); // Send message message.saveChanges(); Transport transport = session.getTransport("smtp"); transport.connect(host, username, password); //transport.sendMessage(message, message.getAllRecipients());这两句都可以 transport.sendMessage(message,message.getRecipients(Message.RecipientType.TO)); transport.close(); } catch(Exception e){ e.printStackTrace(); } }} 如何修改让JS倒计时兼容FF? 求救高手,谢谢!HTTP Status 500 - 错误 No ResultSet was produced?? 有学jap很好的网站或书告诉我,非常感谢 請幫忙﹐jsp里如何連接數據庫昵? jsp中的return返回到哪里 如何配置tomcat? Struts标签checkbox标签为什么不显示哦? 求一替换双引号的正则表达式 接口设计思路 怎样从orcale中取出音乐类型数据,字名=showmusic 类型=(blob)?????? 请问怎么改变复选中的值
//设置邮件
InternetAddress from=new InternetAddress("[email protected]");
message.setFrom(from);
//设置发件人
InternetAddress to=new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO,to);
//设置收件人,并设置其接收类型为TO
message.setSubject(ttitle);
//设置主题
message.setText(tcontent);
//设置信件内容
message.setSentDate(new Date());
//设置发信时间
//发送邮件
message.saveChanges();
//存储邮件信息
Transport transport=s.getTransport("smtp");transport.connect("smtp.163.net","boy","iloveyou");
//以smtp方式登录邮箱
transport.sendMessage(message,message.getAllRecipients());
//发送邮件,其中第二个参数是所有已设好的收件人地址
transport.close();
照你说的那样改过了,还是同样的错误。
其实我原来的代码中也有处理认证的部分<%! %>中的声明部分就是。
因为是帖在这当然不可能公布真正的用户名和密码,那样我的邮箱不要被盗!JavaMail API还是没什么实用。发个邮件都发不出去,我的毕业设计怎么完成啊?我必须实现发HTML表格形式的邮件到各种邮件地址。至少是知名的hotmail,sina,yahoo,等。各位大哥,帮帮小妹吧!!!!
搜索java jsp/servlet/
关键字:%
作者: nancygreen谢谢大家!!!!
props.put("mail.smtp.host","smtp.sina.com");
props.put("mail.smtp.auth","true");
props.put("mail.smtp.user","[email protected]");
props.put("mail.smtp.password","test");
all in your classpath?
但是你的程序应该来说是没问题的!建议你申请一个别的邮箱,比如,etang的。我就是用这个做的实验,已经成功了,至于怎么用sina的服务器来收发邮件,我在仔细研究后,给你答复。
下面是程序
<%@ page contentType="text/html; charset=GBK" %>
<%@ page language="java" import="java.io.*,java.util.*,javax.mail.*,javax.mail.internet.*,javax.activation.*"%>
<%try{
String host="smtp.free.etang.com";
String from="[email protected]";
String to="[email protected]"; String username="username";//下面的用户名和密码一定要对
String password="password"; Properties props = new Properties(); Session sendMailSession;
Transport transport;
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");//这一句也不能掉
sendMailSession = Session.getInstance(props, null);
MimeMessage newMessage = new MimeMessage(sendMailSession);
newMessage.setFrom(new InternetAddress(from));
newMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
String subject="这是一个实验!";
byte[] tmp1byte=subject.getBytes("ISO-8859-1");
subject=new String(tmp1byte);
newMessage.setSubject(subject);
String content="helleo.";
newMessage.setText(content);
newMessage.setSentDate(new Date());
transport = sendMailSession.getTransport("smtp");
transport.connect(host,username,password);
transport.sendMessage(newMessage,newMessage.getRecipients(Message.RecipientType.TO)); }catch(MessagingException e){
out.println(e.toString());
}%>
下面是运行的程序,在执行时,多等一下,只到dos的屏幕上出现press and key....那句话时
在查看自己的邮箱中是否有邮件。
package mypackage;import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
public class SendEmail
{
public static void main(String args[]) throws Exception
{ String host = "smtp.sina.com.cn";
String from = "[email protected]";
String to = "[email protected]";
String username = "××××";//注意sina邮箱的填写,一定要按我上面说的来写
String password = "××××";
try{
// Get system properties
// Properties props = System.getProperties(); 很多例子中是这样的,其实下面这句更好,可以用在applet中
Properties props = new Properties();
// Setup mail server
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true"); //这样才能通过验证
// Get session
Session session = Session.getDefaultInstance(props);
// watch the mail commands go by to the mail server
//session.setDebug(true);
// Define message
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("这是一个测试");
message.setText("****************************************************");
message.setSentDate(new java.util.Date());
// Send message
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, username, password);
//transport.sendMessage(message, message.getAllRecipients());这两句都可以
transport.sendMessage(message,message.getRecipients(Message.RecipientType.TO));
transport.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}