测试时候的错误提示是:
Exception in thread "main" javax.mail.MessagingException: Unknown SMTP host: smtp.126.com;
nested exception is:
java.net.UnknownHostException: smtp.126.com
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1280)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
at mail.Mail.sendBatch(Mail.java:216)
at mail.Mail.main(Mail.java:251)
Caused by: java.net.UnknownHostException: smtp.126.com
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 5 more
Exception in thread "main" javax.mail.MessagingException: Unknown SMTP host: smtp.126.com;
nested exception is:
java.net.UnknownHostException: smtp.126.com
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1280)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
at mail.Mail.sendBatch(Mail.java:216)
at mail.Mail.main(Mail.java:251)
Caused by: java.net.UnknownHostException: smtp.126.com
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 5 more
解决方案 »
- 关于时区问题
- 有什么好的关于java webservcie的书或者教程~~推荐
- 请教一个struts2&spring的问题
- 在J2EE中怎么用Web services天气预报的服务
- jre 在运行时,能备份自己吗?大牛请给些指导。
- struct 多项目管理
- 读取出错!文本为几百M,刚才搞了下,插入问题解决了!但问题又来了
- 本人也做了个论坛但是在发贴的文本框里输入HTML代码,就会显示出HTML格式来,怎么屏蔽掉
- 开发CMP,编译时出现问题,急需高手解决
- myeclipse 10 整合的ssh2 3cp0 mysql连接释放缓慢
- jsf+hibernate+spring问题请教
- myeclipse配置struts出现的一个问题
最好自己本机上建一个smtp服务器,再发自己试下。
import javax.activation.FileDataSource;
import javax.mail.*;import java.io.IOException;
import java.util.*;
import javax.mail.internet.*;import com.newmodern.eve.logger.Logger;
import com.newmodern.eve.system.SystemConfig;/**
* <p>Title: SendingEmail </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2007</p>
* <p>Company: New Modern Technology</p>
* @author Leo Zhang
* @version $Id: SendingEmail.java,v 1.7 2007/05/27 04:24:02 his_jack Exp $
*/public class SendingEmail {
private String host = ""; private String user = ""; private String password = ""; private Properties props = null; private Session mailSession = null;// 是否在控制台显示debug信息 private Transport transport = null; public boolean isValidConfig = false;
private Logger logger = Logger.getInstance(SendingEmail.class); public SendingEmail() {
setHost(getEmailConfig("severHostOfSenderEmail"));// 指定要使用的邮件服务器 setAccount(getEmailConfig("emailAddressOfSender"),// 设置发送者email帐号
getEmailConfig("emailPasswordOfSender")); // 设置发送者email密码 checkConfigValid(); if (isValidConfig)
conectServer();
} private void checkConfigValid() {
if (host != null && !"".equals(host))
isValidConfig = true;
else
logger.info("The configuration of the Sender's Email for 'Remind Emial per huor'"
+" is fail now,Please check the file-->config.properties !");
} private void conectServer() {
props = new Properties();
props.put("mail.smtp.host", host);// 指定SMTP服务器
thisAuthenticator auth = null;
if(user != null && !"".equals(user) && password != null && !"".equals(password)){
props.put("mail.smtp.auth", "true");
auth = new thisAuthenticator(user, password);
}
mailSession = Session.getDefaultInstance(props, auth != null ? auth : null);
mailSession.setDebug(false);// 是否在控制台显示debug信息
try {
transport = mailSession.getTransport("smtp");
transport.connect();
logger.info("transport.connect successfully-->("+host+","+user+")");
} catch (MessagingException e) {
e.printStackTrace();
}
} private void setHost(String host) {
this.host = host;
} private void setAccount(String user, String password) {
this.user = user;
this.password = password;
}
public void send(List to, List CC, String subject, String content,
List attachment) {
send(this.user, to, CC, subject, content, attachment);
}
public void send(String virtualSender, List to, List CC, String subject, String content,
List attachment) {
try {
MimeMessage message = new MimeMessage(mailSession);
logger.info("the virtual sender is-->("+virtualSender+")");
message.setFrom(new InternetAddress(virtualSender));// 发件人
for(int i=0;i<to.size();i++){
if(to.get(i)!=null && !"".equals(to.get(i)))
message.addRecipient(Message.RecipientType.TO,
new InternetAddress((to.get(i)).toString()));// 收件人
}
for(int i=0;i<CC.size();i++){
if(CC.get(i)!=null && !"".equals(CC.get(i)))
message.addRecipient(Message.RecipientType.CC,
new InternetAddress((CC.get(i)).toString()));// 收件人
} message.setSubject(subject);// 邮件主题
if (attachment == null || attachment.size() == 0)
message.setText(content);// 邮件内容
else {
// *********************************************
message.setSentDate(new Date());
MimeBodyPart textBodyPart = new MimeBodyPart();
textBodyPart.setText(content);
Multipart container = new MimeMultipart();
container.addBodyPart(textBodyPart);
for(int i=0;i<attachment.size();i++){
MimeBodyPart fileBodyPart = new MimeBodyPart();
FileDataSource fds = new FileDataSource(attachment.get(i).toString());// 要发送的附件
fileBodyPart.setDataHandler(new DataHandler(fds));
fileBodyPart.setFileName(MimeUtility.encodeText(fds.getName(),"gb2312","B"));
container.addBodyPart(fileBodyPart);
}
message.setContent(container);
}
message.saveChanges();
logger.info("transport.sendMessage begin-->");
transport.sendMessage(message, message.getAllRecipients());
logger.info("transport.sendMessage successfully");
} catch (Exception e) {
logger.info("the sender("+virtualSender+")meet errors-->"+ e);
} } public void send(List to, List CC, String subject, String content) {
send(to, CC, subject, content, null);
} public void stopSending() {
try {
if (isValidConfig)
transport.close();
logger.info("transport.close() successfully");
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public String getEmailConfig(String code) {
try {
return SystemConfig.getPropertyResourceBundle().getString(code);
} catch (IOException e) {
e.printStackTrace();
}
return "";
}}
class thisAuthenticator extends javax.mail.Authenticator {
private String strUser;
private String strPwd; public thisAuthenticator(String user, String password) {
this.strUser = user;
this.strPwd = password;
} protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(strUser, strPwd);
}
}这是我的代码,希望能帮到你
126的stmp是我在这个地址上查到的,应该没有问题,
http://cache.baidu.com/c?word=126%3B%B5%C4%3Bsmtp%3B%CA%C7%3B%CA%B2%C3%B4&url=http%3A//www%2E126%2Ecom/help/client%5F04%2Ehtm&p=87769a4fc7825fec08e2962a17&user=baidu另外我还不会自己搭建邮件服务器所以只能跑一下测试,我在公司上网要代理,希望大家能帮忙解决一下要代理时候的问题
错误是
nested exception is:
java.net.UnknownHostException: smtp.126.com
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1280)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
at mail.Mail.sendBatch(Mail.java:218)
at mail.Mail.main(Mail.java:253)
Caused by: java.net.UnknownHostException: smtp.126.com
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:230)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 5 more
你下面这类作用是什么
import com.newmodern.eve.system.SystemConfig;