发送mail bean的方法如下 ... 为什么我写一个简单的应用程序来调用就可以发送,而用JSP 来调用就出现javax.mail.NoSuchProviderException: smtp的错误..谢谢!
public void sendmail()
{
try{
//Set up the default parameters
Properties props = new Properties();
props.put("mail.transport.protocol","smtp");
props.put("mail.smtp.host","smtp.163.com");
props.put("mail.smtp.auth","true");
props.put("mail.smtp.port","25");
// Create the session and create a new mail message
Session mailSession = Session.getInstance(props,null);
Message msg = new MimeMessage(mailSession);
// Set the FROM, TO, DATE and SUBJECT fields
msg.setFrom(new InternetAddress("(Feng)davisye@163.com"));
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse("davisye@163.com"));
msg.setSentDate(new Date());
msg.setSubject("test");
//Create the body of the mail
msg.setText("Feng----Java mail 发送成功!");
//Ask the Transport class to send our mail message
System.out.println("正在发送邮件....");
//Session mailSession = Session.getInstance(props,null);
Transport transport = mailSession.getTransport("smtp");
transport.connect((String)props.get("mail.smtp.host"),"zfye","1234");
transport.sendMessage(msg,msg.getRecipients(Message.RecipientType.TO));
//transport.send(mimeMsg);
System.out.println("发送邮件成功!");
transport.close();
//Transport.send(msg);
}catch(Exception e){ System.out.println(e); }
如果一个应用程序可以调用。那应该是你JSP调用时方式有问题。比如参数未写全。或者不用USEBEAN标记。直接用JAVA语言在JSP来调用呢?
可以说说出的是什么错吗?贴些出错信息来。
我收到别人给我的代码,说是能用的,可我用在 JSP 中老是说联系不上 smtp 服务器!真是恼人!
关注中!
smtp.163.com
要验证的吧
package mails;
import javax.mail.*;
import javax.mail.internet.*;
public class QuickMailText {
public static void sendMessage(String smtpHost,String from,String to,String subject,String messageText)throws MessagingException{
System.out.println("Configuring mail session for:"+smtpHost);
SmtpAuth sa=new SmtpAuth();
sa.getuserinfo("xxxx","xxxxx");
java.util.Properties props=new java.util.Properties();
props.put("mail.smtp.auth","true");
props.put("mail.smtp.host",smtpHost);
System.out.println("Constructing message- from="+from+" to="+to);
InternetAddress fromAddress=new InternetAddress(from);
InternetAddress[] toAddresss=new InternetAddress[3];
toAddresss[0]=new InternetAddress("jeanwely@citiz.net");
toAddresss[1]=new InternetAddress("cgsun_job@citiz.net");
toAddresss[2]=new InternetAddress("dawnsky@citiz.net");
int i=0;
while(i<toAddresss.length){
Session mailSession=Session.getDefaultInstance(props,sa);
MimeMessage testMessage=new MimeMessage(mailSession);
testMessage.setFrom(fromAddress);
testMessage.addRecipient(javax.mail.Message.RecipientType.TO,toAddresss[i]);
testMessage.setSentDate(new java.util.Date());
testMessage.setSubject(subject);
testMessage.setText(messageText);
System.out.println("Message constructed");
Transport.send(testMessage);
System.out.println("Message sent!");
i++;
}
}
public static void main(String[] args){
String smtpHost="smtp.citiz.net";
String from="cgsun@citiz.net";
String to="xxxxxx.net";
String subject="Test message";
StringBuffer theMessage=new StringBuffer();
theMessage.append("ddddhello22,\n\n");
theMessage.append("Hope all is well on you end.\n");
theMessage.append("Cheers");
try{
QuickMailText.sendMessage(smtpHost,from,to,subject,theMessage.toString());
}catch(javax.mail.MessagingException exc){
exc.printStackTrace();
}
}
static class SmtpAuth extends javax.mail.Authenticator {
private String user,password;
public void getuserinfo(String getuser,String getpassword){
user = getuser;
password = getpassword;
}
protected javax.mail.PasswordAuthentication getPasswordAuthentication(){
return new javax.mail.PasswordAuthentication(user,password);
}
}
}
try
{
SmtpClient client = new SmtpClient(mail.getHost());
client.from(mail.getFrom());
client.to(mail.getTo());
PrintStream message = client.startMessage();
message.println("To:" + mail.getTo());
message.println("Subject:" + mail.getSubject());
message.println();
message.println();
message.println(mail.getContext());
message.println();
client.closeServer();
} catch (Exception e){
System.out.println(e.getLocalizedMessage());
return false;
}
return true;