使用commons-email-1.2发邮件的一点总结
今天用到commons-email-1.2.jar来发邮件
先导入commons-email-1.2.jar包,类如下:
import org.apache.commons.mail.SimpleEmail;public class SendEmail {public static void main(String args[]) {System.out.println("Begin Send email");// TODO Auto-generated method stubtry {SimpleEmail email = new SimpleEmail();email.setHostName("mail.xxx.com.cn");email.addTo("xxx@xxx.com.cn", "xxx");email.setFrom("xxx@xxx.com.cn", "testMe");email.setSubject("hello");email.setMsg("hello");email.send();} catch (Exception e) {e.printStackTrace();}}}org.apache.commons.mail.EmailException: Sending the email to the following server failed : mail.xxx.com.cn:25at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242)at org.apache.commons.mail.Email.send(Email.java:1267)at SendEmail.main(SendEmail.java:18)Caused by: javax.mail.NoSuchProviderException: smtpat javax.mail.Session.getService(Session.java:768)at javax.mail.Session.getTransport(Session.java:708)at javax.mail.Session.getTransport(Session.java:651)at javax.mail.Session.getTransport(Session.java:631)at javax.mail.Session.getTransport(Session.java:686)at javax.mail.Transport.send0(Transport.java:166)at javax.mail.Transport.send(Transport.java:98)at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1232)... 2 more
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStreamat javax.mail.internet.MimeUtility.<clinit>(MimeUtility.java:1161)at javax.mail.internet.InternetAddress.setPersonal(InternetAddress.java:216)at org.apache.commons.mail.Email.createInternetAddress(Email.java:589)at org.apache.commons.mail.Email.addTo(Email.java:727)at org.apache.commons.mail.Email.addTo(Email.java:710)at SendEmail.main(SendEmail.java:14)
SimpleEmail email = new SimpleEmail(); try { email.setHostName("smtp.163.com"); //Yahoo的服务器地址是:smtp.mail.yahoo.com email.addTo("发送到的地址", "John Doe"); email.setFrom("发送的邮件地址", "Mr Smith"); email.setAuthentication("用户名", "密码"); email.setSubject("Test message"); email.setMsg("This is a simple test of commons-email"); email.send(); } catch (EmailException e) { // TODO Auto-generated catch block e.printStackTrace(); }SimpleEmail email = new SimpleEmail(); try { email.setHostName("smtp.gmail.com"); email.setSSL(Boolean.TRUE); // 设定是否使用SSL email.setSslSmtpPort("465"); // 设定SSL端口 email.addTo("发送到的地址", "John Doe"); email.setFrom("发送的邮件地址", "Mr Smith"); email.setAuthentication("用户名", "密码"); email.setSubject("Test message"); email.setMsg("This is a simple test of commons-email"); 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.gmail.com:25 at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1242) at org.apache.commons.mail.Email.send(Email.java:1267) at SendEmail.main(SendEmail.java:24)Caused by: com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. 21sm7388726ywh.46 at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829) at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1368) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:886) at javax.mail.Transport.send0(Transport.java:191) at javax.mail.Transport.send(Transport.java:120) at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1232) ... 2 more