我的程序:
package until;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class Mail {
public static void main(String arg[]){
HtmlEmail email = new HtmlEmail();
email.setHostName("smtp.163.com");//设置发信的smtp服务器
try {
email.addTo("[email protected]");
//设置收件人帐号和收件人
email.setFrom("[email protected]", "zhang_rzh");//设置发信的邮件帐号和发信人
email.setSubject("HHHHH");//设置邮件主题
email.setAuthentication("zhang_rzh","815241");//如果smtp服务器需要认证的话,在这里设置帐号、密码
email.setHtmlMsg("ddddddddddd");//设置邮件正文和字符编码
email.send();
} catch (EmailException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
--------------------------
结果:
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.163.com:25
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1138)
at org.apache.commons.mail.Email.send(Email.java:1163)
at until.Mail.main(Mail.java:15)
Caused by: javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.MessagingException: Unknown SMTP host: smtp.163.com;
nested exception is:
java.net.UnknownHostException: smtp.163.com
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1128)
... 2 more请高手解答,非常感谢!!!!!!!!!
package until;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class Mail {
public static void main(String arg[]){
HtmlEmail email = new HtmlEmail();
email.setHostName("smtp.163.com");//设置发信的smtp服务器
try {
email.addTo("[email protected]");
//设置收件人帐号和收件人
email.setFrom("[email protected]", "zhang_rzh");//设置发信的邮件帐号和发信人
email.setSubject("HHHHH");//设置邮件主题
email.setAuthentication("zhang_rzh","815241");//如果smtp服务器需要认证的话,在这里设置帐号、密码
email.setHtmlMsg("ddddddddddd");//设置邮件正文和字符编码
email.send();
} catch (EmailException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
--------------------------
结果:
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.163.com:25
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1138)
at org.apache.commons.mail.Email.send(Email.java:1163)
at until.Mail.main(Mail.java:15)
Caused by: javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.MessagingException: Unknown SMTP host: smtp.163.com;
nested exception is:
java.net.UnknownHostException: smtp.163.com
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1128)
... 2 more请高手解答,非常感谢!!!!!!!!!
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/***邮件发送器***/
public class EmailSender {
private String subject;
/***定义邮件正文**/
private String checkinreport;
/**邮件目的地**/
private String destination ;
/**发送邮件的邮箱地址**/
private String fountainhead;
/***发送邮件邮箱密码***/
private String password;
private String smtphost;
private String smtpcom;
public void setPramater(String subject,String checkinreport,String destination,String fountainhead,String password,String smtphost,String smtpcom){
this.subject=subject;
this.checkinreport=checkinreport;
this.destination=destination;
this.fountainhead=fountainhead;
this.password=password;
this.smtphost=smtpcom;
this.smtpcom=smtpcom;
} public static void main(String[] args) {
System.out.println("test mail send");
String subject="1111111111";
/***定义邮件正文**/
String checkinreport = "正文";
// static String emailadd = "[email protected],[email protected]";: static String emailadd =
/**邮件目的地**/
String destination = "[email protected],[email protected],[email protected]";;
/**发送邮件的邮箱地址**/
String fountainhead="[email protected]";
/***发送邮件邮箱密码***/
String password="111";
String smtphost="mail.smtp.host";
String smtpcom="smtp.163.com";
EmailSender es=new EmailSender();
//es.setPramater(subject, checkinreport, destination, fountainhead, password, smtphost, smtpcom);
es.setSubject(subject);
es.setCheckinreport(checkinreport);
es.setDestination(destination);
es.setFountainhead(fountainhead);
es.setPassword(password);
es.setSmtphost(smtphost);
es.setSmtpcom(smtpcom);
boolean f =es.send();
System.out.println(" mail send success");
} public boolean send() {
System.out.println("-----"+subject+ checkinreport+ destination+ fountainhead+password+smtphost+smtpcom);
Properties props = System.getProperties(); try {
props.put(smtphost, smtpcom);
} catch (Exception ex) {
return false;
}
// Session session = Session.getDefaultInstance(props, null);
props.put("mail.smtp.auth", "true");
MyAuthenticator myauth = new MyAuthenticator(fountainhead, password);
Session session = Session.getDefaultInstance(props, myauth);
Message msg = new MimeMessage(session);
InternetAddress[] toAddrs = null, ccAddrs = null; try {
/**建立邮箱地址**/
toAddrs = InternetAddress.parse(destination, false);
msg.setRecipients(Message.RecipientType.TO, toAddrs); msg.setFrom(new InternetAddress(fountainhead));
/***邮件标题**/
msg.setSubject(subject);
/***邮件正文***/
msg.setText(checkinreport);
msg.saveChanges();
Transport.send(msg);
return true; } catch (Exception ex) {
ex.printStackTrace();
System.out.println(ex);
return false;
}
} public String getSubject() {
return subject;
} public void setSubject(String subject) {
this.subject = subject;
} public String getCheckinreport() {
return checkinreport;
} public void setCheckinreport(String checkinreport) {
this.checkinreport = checkinreport;
} public String getDestination() {
return destination;
} public void setDestination(String destination) {
this.destination = destination;
} public String getFountainhead() {
return fountainhead;
} public void setFountainhead(String fountainhead) {
this.fountainhead = fountainhead;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getSmtphost() {
return smtphost;
} public void setSmtphost(String smtphost) {
this.smtphost = smtphost;
} public String getSmtpcom() {
return smtpcom;
} public void setSmtpcom(String smtpcom) {
this.smtpcom = smtpcom;
}}
class MyAuthenticator extends javax.mail.Authenticator {
private String strUser;
private String strPwd; public MyAuthenticator(String user, String password) {
this.strUser = user;
this.strPwd = password;
} protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(strUser, strPwd);
}
}
at javax.activation.MailcapCommandMap.<init>(MailcapCommandMap.java:140)
at javax.activation.CommandMap.getDefaultCommandMap(CommandMap.java:61)
at javax.activation.DataHandler.getCommandMap(DataHandler.java:153)
at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:611)
at javax.activation.DataHandler.writeTo(DataHandler.java:315)
at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:248)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1268)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2012)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1980)
at EmailSender.send(EmailSender.java:93)
at EmailSender.main(EmailSender.java:63)