admin管理员组

文章数量:1559072

引入相关依赖:


            javax.mail
            mail
            1.4.7
        

            commons-io
            commons-io
            2.4
        
如果使用spring的发邮件,还需要添加依赖:

            org.springframework
            spring-context-support
            ${spring.version}
        

登录腾讯企业邮箱:

生成一个授权密码,后面会用到.

下面ssl等 腾讯qq和企业邮箱默认是开启的

pop3/smtp协议

接收邮件服务器:pop.exmail.qq ,使用ssl,端口号995
发送邮件服务器:smtp.exmail.qq ,使用ssl,端口号465
海外用户可使用以下服务器
接收邮件服务器:hwpop.exmail.qq ,使用ssl,端口号995
发送邮件服务器:hwsmtp.exmail.qq ,使用ssl,端口号465

imap协议

接收邮件服务器:imap.exmail.qq ,使用ssl,端口号993
发送邮件服务器:smtp.exmail.qq ,使用ssl,端口号465
海外用户可使用以下服务器
接收邮件服务器:hwimap.exmail.qq ,使用ssl,端口号993
发送邮件服务器:hwsmtp.exmail.qq ,使用ssl,端口号465

 

qq邮箱

smtp.qq

587

 

主要的一个方法

 /**
     * 发送邮件
     *
     * @param content 内容
     */
    public static void sendmail(string host, string port, string protocol,string auth,string sendmailaccount,
                                string sendmailpassword, string receivemailaccount, string subject, string content) {
        properties prop = new properties();
        //协议
        prop.setproperty("mail.transport.protocol", "smtp");
        //服务器
        prop.setproperty("mail.smtp.host", "smtp.exmail.qq");
        //端口
        prop.setproperty("mail.smtp.port","465");
        //使用smtp身份验证
        prop.setproperty("mail.smtp.auth","true");
        //企业邮箱必须要ssl
        mailsslsocketfactory sf = null;
        try {
            sf = new mailsslsocketfactory();
            sf.settrustallhosts(true);
        } catch (generalsecurityexception e1) {
            e1.printstacktrace();
        }
        prop.put("mail.smtp.ssl.enable", "true");
        prop.put("mail.smtp.ssl.socketfactory", sf);
        //获取session对象
        session s = session.getdefaultinstance(prop, new authenticator() {
            //此访求返回用户和密码的对象
            @override
            protected passwordauthentication getpasswordauthentication() {
                passwordauthentication pa = new passwordauthentication("kf@zz1x", "生成的客户端专用密码");
                return pa;
            }
        });
        //设置session的调试模式,发布时取消
        s.setdebug(true);
        mimemessage mimemessage = new mimemessage(s);
        try {
            mimemessage.setfrom(new internetaddress(kf@zz1x));
            mimemessage.addrecipient(message.recipienttype.to, new internetaddress("接受邮件的邮箱"));
            //设置主题
            mimemessage.setsubject("subject");//邮件标题
            mimemessage.setsentdate("new date()");
            //设置内容
            mimemessage.settext("content");//邮件内容
            mimemessage.savechanges();
            //发送
            transport.send(mimemessage);
        } catch (messagingexception e) {
            e.printstacktrace();
        }
    }

这里是一个方法写成的公共的。host、port都是调用方传过来的

最后测试的效果:

如果要群发的话,只需要更改

//单个人
//            mimemessage.addrecipient(message.recipienttype.to,  new internetaddress(receivemailaccount));

变成多人

mimemessage.addrecipients(message.recipienttype.to,addressmails(receivemailaccount));
public static internetaddress[] addressmails(string receivemails) {
//多个接收账号
//        string str = "xxx@xxx,xxx@xxx";
        internetaddress[] address = null;
        try {
            list list = new arraylist();//不能使用string类型的类型,这样只能发送一个收件人
            string[] median = receivemails.split(",");//对输入的多个邮件进行逗号分割
            for (int i = 0; i < median.length; i  ) {
                list.add(new internetaddress(median[i]));
            }
            address = (internetaddress[]) list.toarray(new internetaddress[list.size()]);
        } catch (addressexception e) {
            e.printstacktrace();
        }
        return address;
    }

参数receivemails为string字符串以逗号隔开,比如:1195564387@qq,17258232@qq

本文标签: 腾讯发送邮件企业邮箱