• 简单的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("shadowsick@163.com");
            mail.setReceiver("shadowsick@163.com"); // 接收人
            mail.setUsername("shadowsick@163.com"); // 登录账号,一般都是和邮箱名一样吧
            mail.setPassword("xxxxx"); // 发件人邮箱的登录密码
            mail.setSubject("aaaaaaaaa");
            mail.setMessage("bbbbbbbbbbbbbbbbb");
            new MailUtil().send(mail);
        }
  • 相关阅读:
    TCP/IP协议栈之QEMU
    FreeRTOS-Plus-CLI中添加一个自己的命令行
    FreeRTOS A57
    log日志库
    函数解读:ioremap / ioremap_nocache / ioremap_wc / ioremap_wt
    Makefile 使用小结
    41. 缺失的第一个正数(First Missing Positive)
    42. 接雨水(Trapping Rain Water)
    关于C++内联和静态成员函数的问题
    C++11 线程并发问题
  • 原文地址:https://www.cnblogs.com/chen-lhx/p/5580373.html
Copyright © 2020-2023  润新知