Java发送邮件

1.新建一个Java工程,SendMail。

2.引入三个jar。

在工程中新建文件夹lib,拷入三个jar,在properties->java build path->librarys导入->order and export√上。

commons-email-1.2.jar

activation-1.1.jar

mail-1.4.jar(一开始没引入这个jar,结果报错,java.lang.NoClassDefFoundError: javax.mail.Authenticator)

3.新建一个类SendMail.java

[java] view plaincopy

    package com.ibm.docs.viewer;  
      
    import org.apache.commons.mail.EmailException;  
    import org.apache.commons.mail.SimpleEmail;  
      
    public class SendMail {  
        public SendMail() {  
        }  
      
        public static void main(String[] args) {  
            send();  
            System.out.println();  
        }  
      
        public static void send() {  
            SimpleEmail email = new SimpleEmail();  
            email.setTLS(true);  
            email.setHostName("d23m0037.cn.ibm.com");  
            email.setAuthentication("[email protected]", "XXXX"); // 用户名和密码  
            try {  
                email.addTo("[email protected]"); // 接收方  
                email.setFrom("[email protected]"); // 发送方  
                email.setSubject("Java Mail Test"); // 标题  
                email.setMsg("Just a simple send test ."); // 内容  
                email.send();  
            } catch (EmailException e) {  
                e.printStackTrace();  
            }  
        }  
    }  

4.运行。

之前用的163,gmail,新浪的邮件服务器均报错。

Sending the email to the following server failed

网上一查应该是公司的端口25被封了,

开始-运行-cmd- 键入命令 netstat -an  只能看到本机的开放端口

测试的时候,发现 telnet d23m0037.cn.ibm.com 25是通的,说明服务器好使,成功收到邮件。

5.发送带附件的邮件。

[java] view plaincopy

    package com.ibm.docs.viewer;  
      
    import org.apache.commons.mail.EmailAttachment;  
    import org.apache.commons.mail.EmailException;  
    import org.apache.commons.mail.MultiPartEmail;  
      
    public class SendAttachment {  
      
        public static void main(String[] args) throws EmailException {  
            MultiPartEmail email = new MultiPartEmail();  
      
            // 通过IBM Server 发送邮件  
            email.setTLS(true);  
            email.setHostName("d23m0037.cn.ibm.com"); // 设定smtp服务器  
            email.setAuthentication("[email protected]", "XXX@2012"); // 用户名和密码  
      
            EmailAttachment attachment = new EmailAttachment();  
            attachment.setPath("C:\\Documents and Settings\\Administrator\\My Documents\\Downloads\\result.txt");  
            attachment.setDisposition(EmailAttachment.ATTACHMENT);// 设定附件的方式(内嵌,附件)  
            attachment.setDescription("result");  
            attachment.setName("result.txt"); // 附件的文件名  
      
            email.addTo("[email protected]"); // 接收方  
            email.setFrom("[email protected]"); // 发送方  
            email.setSubject("Java Mail Test"); // 标题  
            email.setMsg("Just a simple send test ."); // 内容  
      
            email.attach(attachment);  
            email.send();  
        }  
    }  



之前也写过一个基于163的,一年前写的了,又忘了,该死!

现在记录下来,也许以后还可以用上。就可以代码重用了。O耶!

你可能感兴趣的:(Java发送邮件)