简单的java mail发送邮件实例详解编程语言

mail.jar ,commons-email-X.X.jar ,activation.jar ,log4j.jar  这四个jar,放进项目里

下载地址

http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-eeplat-419426.html

该类实现了较完整的邮件发送功能,包括以HTML格式发送,添加附件和抄送人。下面是具体的代码:

先写个简单的mail对象

package com.shadow.mvc.vo; 
 
import java.io.Serializable; 
 
/** 
 * Mail属性实体 
 *  
 * @author shadow 
 *  
 */ 
@SuppressWarnings("serial") 
public class Mail implements Serializable { 
 
    public static final String ENCODEING = "UTF-8"; 
 
    private String host; // 服务器地址 
 
    private String sender; // 发件人的邮箱 
 
    private String receiver; // 收件人的邮箱 
 
    private String name; // 发件人昵称 
 
    private String username; // 账号 
 
    private String password; // 密码 
 
    private String subject; // 主题 
 
    private String message; // 信息(支持HTML) 
 
    public String getHost() { 
        return host; 
    } 
 
    public void setHost(String host) { 
        this.host = host; 
    } 
 
    public String getSender() { 
        return sender; 
    } 
 
    public void setSender(String sender) { 
        this.sender = sender; 
    } 
 
    public String getReceiver() { 
        return receiver; 
    } 
 
    public void setReceiver(String receiver) { 
        this.receiver = receiver; 
    } 
 
    public String getName() { 
        return name; 
    } 
 
    public void setName(String name) { 
        this.name = name; 
    } 
 
    public String getUsername() { 
        return username; 
    } 
 
    public void setUsername(String username) { 
        this.username = username; 
    } 
 
    public String getPassword() { 
        return password; 
    } 
 
    public void setPassword(String password) { 
        this.password = password; 
    } 
 
    public String getSubject() { 
        return subject; 
    } 
 
    public void setSubject(String subject) { 
        this.subject = subject; 
    } 
 
    public String getMessage() { 
        return message; 
    } 
 
    public void setMessage(String message) { 
        this.message = message; 
    } 
 
}

然后就写个工具类

package com.shadow.extras.util; 
 
import org.apache.commons.mail.EmailException; 
import org.apache.commons.mail.HtmlEmail; 
import org.apache.log4j.Logger; 
 
import com.shadow.mvc.vo.Mail; 
 
/** 
 * 邮件发送工具实现类 
 *  
 * @author shadow 
 * @create 2013/07/12 
 */ 
public class MailUtil { 
 
    protected final Logger logger = Logger.getLogger(getClass()); 
 
    public boolean send(Mail mail) { 
        // 发送email 
        HtmlEmail email = new HtmlEmail(); 
        try { 
            // 这里是SMTP发送服务器的名字:163的如下:"smtp.163.com" 
            email.setHostName(mail.getHost()); 
            // 字符编码集的设置 
            email.setCharset(Mail.ENCODEING); 
            // 收件人的邮箱 
            email.addTo(mail.getReceiver()); 
            // 发送人的邮箱 
            email.setFrom(mail.getSender(), mail.getName()); 
            // 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码 
            email.setAuthentication(mail.getUsername(), mail.getPassword()); 
            // 要发送的邮件主题 
            email.setSubject(mail.getSubject()); 
            // 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签 
            email.setMsg(mail.getMessage()); 
            // 发送 
            email.send(); 
            if (logger.isDebugEnabled()) { 
                logger.debug(mail.getSender() + " 发送邮件到 " + mail.getReceiver()); 
            } 
            return true; 
        } catch (EmailException e) { 
            e.printStackTrace(); 
            logger.info(mail.getSender() + " 发送邮件到 " + mail.getReceiver() 
                    + " 失败"); 
            return false; 
        } 
    } 
 
}

最后写个main方法测试下

public static void main(String[] args) { 
        Mail mail = new Mail(); 
        mail.setHost("smtp.163.com"); // 设置邮件服务器,如果不用163的,自己找找看相关的 
        mail.setSender("[email protected]"); 
        mail.setReceiver("[email protected]"); // 接收人 
        mail.setUsername("[email protected]"); // 登录账号,一般都是和邮箱名一样吧 
        mail.setPassword("xxxxx"); // 发件人邮箱的登录密码 
        mail.setSubject("aaaaaaaaa"); 
        mail.setMessage("bbbbbbbbbbbbbbbbb"); 
        new MailUtil().send(mail); 
    }

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/19501.html

(0)
上一篇 2021年7月19日 22:15
下一篇 2021年7月19日 22:15

相关推荐

发表回复

登录后才能评论