shanyuliang(良子): 按照你说的: String server = "smtp.163.net"; props.put("mail.smtp.port", "25"); 运行后出现下面信息,该怎样解释? DEBUG: SMTPTransport trying to connect to host "smtp.163.net", port 25javax.mail.MessagingException: Unknown SMTP host: smtp.163.net; nested exception is: java.net.UnknownHostException: smtp.163.net at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:693) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:168) at javax.mail.Service.connect(Service.java:227) at javax.mail.Service.connect(Service.java:131) at testjava.MainFrm.sendMail(MainFrm.java:125) at testjava.MainFrm.jButton1_actionPerformed(MainFrm.java:136) at testjava.MainFrm$1.actionPerformed(MainFrm.java:49) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1504) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:378) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:216) at java.awt.Component.processMouseEvent(Component.java:3717) at java.awt.Component.processEvent(Component.java:3546) at java.awt.Container.processEvent(Container.java:1167) at java.awt.Component.dispatchEventImpl(Component.java:2595) at java.awt.Container.dispatchEventImpl(Container.java:1216) at java.awt.Component.dispatchEvent(Component.java:2499) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2458) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2223) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2132) at java.awt.Container.dispatchEventImpl(Container.java:1203) at java.awt.Window.dispatchEventImpl(Window.java:918) at java.awt.Component.dispatchEvent(Component.java:2499) at java.awt.EventQueue.dispatchEvent(EventQueue.java:336) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:134) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:96) at java.awt.EventDispatchThread.run(EventDispatchThread.java:88)
你们的局域网服务器屏蔽了163的SMTP服务器,你可以使用你们的局域网自己的SMTP服务器啊!
可能是这样。 我们也用的是自己的mail服务器。
我的程序也有问题 /* // header - edit "Data/yourJavaHeader" to customize // contents - edit "EventHandlers/Java file/onCreate" to customize // */ import java.util.*; import java.io.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*;class mail { static String msgText1 = "This is a message body.\nHere’s line two."; static String msgText2 = "This is the text in the message attachment."; public static void main(String[] args){ //JavaMail. API Design Specification September 2000 String to = "[email protected]"; String from = "[email protected]"; String host = "smtp.263.net"; boolean debug = true;//Boolean.valueOf(args[3]).booleanValue(); // create some properties and get the default Session Properties props = new Properties(); props.put("mail.smtp.host", host); props.put("mail.smtp.port", "25"); props.put("mail.smtp.auth", "true"); props.put("mail.bebug", "true"); Session session = Session.getDefaultInstance(props, null); session.setDebug(debug); //System.out.println(session); MimeMessage msg = new MimeMessage(session); try { // create a message Transport transport = session.getTransport("smtp"); msg.setFrom(new InternetAddress(from)); InternetAddress[] address = {new InternetAddress(to)}; msg.setRecipients(Message.RecipientType.TO, address); msg.setSubject("JavaMail APIs Multipart Test"); msg.setSentDate(new Date()); // create and fill the first message part MimeBodyPart mbp1 = new MimeBodyPart(); mbp1.setText(msgText1); // create and fill the second message part MimeBodyPart mbp2 = new MimeBodyPart(); // Use setText(text, charset), to show it off ! mbp2.setText(msgText2, "us-ascii"); // create the Multipart and its parts to it Multipart mp = new MimeMultipart(); //80 Appendix B: Examples Using the JavaMail API //Example: Sending a Message mp.addBodyPart(mbp1); mp.addBodyPart(mbp2); // add the Multipart to the message msg.setContent(mp); // send the message //Transport trans = session.getTransport("SMTP"); //Transport.send(msg); } catch (MessagingException mex) { mex.printStackTrace(); Exception ex = null; if ((ex = mex.getNextException()) != null) { ex.printStackTrace(); } }
}} 出现这个exceptionjavax.mail.NoSuchProviderException: No provider for smtp at javax.mail.Session.getProvider(Session.java:249) at javax.mail.Session.getTransport(Session.java:442) at javax.mail.Session.getTransport(Session.java:423) at mail.main(mail.java:40)清高手帮忙看看
有谁通过代理服务器用JavaMail发送过邮件??能提供点建议吗?
按照你说的:
String server = "smtp.163.net";
props.put("mail.smtp.port", "25");
运行后出现下面信息,该怎样解释?
DEBUG: SMTPTransport trying to connect to host "smtp.163.net", port 25javax.mail.MessagingException: Unknown SMTP host: smtp.163.net;
nested exception is:
java.net.UnknownHostException: smtp.163.net
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:693)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:168)
at javax.mail.Service.connect(Service.java:227)
at javax.mail.Service.connect(Service.java:131)
at testjava.MainFrm.sendMail(MainFrm.java:125)
at testjava.MainFrm.jButton1_actionPerformed(MainFrm.java:136)
at testjava.MainFrm$1.actionPerformed(MainFrm.java:49)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1504)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:378)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:216)
at java.awt.Component.processMouseEvent(Component.java:3717)
at java.awt.Component.processEvent(Component.java:3546)
at java.awt.Container.processEvent(Container.java:1167)
at java.awt.Component.dispatchEventImpl(Component.java:2595)
at java.awt.Container.dispatchEventImpl(Container.java:1216)
at java.awt.Component.dispatchEvent(Component.java:2499)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2458)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2223)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2132)
at java.awt.Container.dispatchEventImpl(Container.java:1203)
at java.awt.Window.dispatchEventImpl(Window.java:918)
at java.awt.Component.dispatchEvent(Component.java:2499)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:336)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:134)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:96)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:88)
我们也用的是自己的mail服务器。
/*
// header - edit "Data/yourJavaHeader" to customize
// contents - edit "EventHandlers/Java file/onCreate" to customize
//
*/
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;class mail
{
static String msgText1 = "This is a message body.\nHere’s line two.";
static String msgText2 = "This is the text in the message attachment."; public static void main(String[] args){
//JavaMail. API Design Specification September 2000
String to = "[email protected]";
String from = "[email protected]";
String host = "smtp.263.net";
boolean debug = true;//Boolean.valueOf(args[3]).booleanValue();
// create some properties and get the default Session
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", "25");
props.put("mail.smtp.auth", "true");
props.put("mail.bebug", "true");
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
//System.out.println(session);
MimeMessage msg = new MimeMessage(session);
try {
// create a message
Transport transport = session.getTransport("smtp");
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject("JavaMail APIs Multipart Test");
msg.setSentDate(new Date());
// create and fill the first message part
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(msgText1);
// create and fill the second message part
MimeBodyPart mbp2 = new MimeBodyPart();
// Use setText(text, charset), to show it off !
mbp2.setText(msgText2, "us-ascii");
// create the Multipart and its parts to it
Multipart mp = new MimeMultipart();
//80 Appendix B: Examples Using the JavaMail API
//Example: Sending a Message
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
// add the Multipart to the message
msg.setContent(mp);
// send the message
//Transport trans = session.getTransport("SMTP"); //Transport.send(msg);
} catch (MessagingException mex) {
mex.printStackTrace();
Exception ex = null;
if ((ex = mex.getNextException()) != null) {
ex.printStackTrace();
}
}
}}
出现这个exceptionjavax.mail.NoSuchProviderException: No provider for smtp
at javax.mail.Session.getProvider(Session.java:249)
at javax.mail.Session.getTransport(Session.java:442)
at javax.mail.Session.getTransport(Session.java:423)
at mail.main(mail.java:40)清高手帮忙看看