java email qq邮箱 与 阿里企业邮箱/个人邮箱


贴一个例子仅供参考  QQ邮箱

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public static void main (String[] a){
        try{
            HtmlEmail email=new HtmlEmail();//创建电子邮件对象
            email.setSSL(true);
            email.setDebug(true);
            email.setHostName("SMTP.qq.com");//设置发送电子邮件使用的服务器主机名
            email.setSmtpPort(587);//设置发送电子邮件使用的邮件服务器的TCP端口地址
            email.setAuthenticator(new DefaultAuthenticator("你的QQ邮箱", "你的‘IMAP/SMTP’密码"));//邮件服务器身份验证
            email.setFrom("*****@qq.com");//设置发信人邮箱
            email.setSubject("this title");//设置邮件主题
            email.setMsg("this is a test mali with attch");//设置邮件文本内容
            email.setMsg("this is mail with test1");
            email.addTo("******@qq.com");//设置收件人
//            EmailAttachment attach =new EmailAttachment();//附件对象
//            attach.setPath("C:/temp/wenzhi.doc");//附件文件在系统中的路径
//            attach.setDescription(EmailAttachment.ATTACHMENT);
//            email.attach(attach);//添加附件
            email.send();//发送邮件
        }catch(EmailException e){
            e.printStackTrace();
        }
    }

注:IMAP/SMTP密码获取方法 打开QQ邮箱--》设置--》账号--》开启服务:IMAP/SMTP


贴一个例子仅供参考  阿里企业邮箱/个人邮箱

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;

/**
 * 阿里云邮件发送
 */
public class MailUtil {
    private static final String ALIDM_SMTP_HOST = "smtp.mxhichina.com";//阿里云企业版
//    private static final String ALIDM_SMTP_HOST = "smtp.aliyun.com";//阿里云个人版
    private static final int ALIDM_SMTP_PORT = 25;// 或80

    // 发件人的账号 和 密码
    private String user;
    private String password;

    public MailUtil() {
        this("你的阿里云企业邮箱", "你的阿里云邮箱密码");
//        this("你的阿里云个人邮箱", "你的阿里云个人邮箱密码");
    }

    public MailUtil(String user, String password) {
        this.user = user;
        this.password = password;
    }

    public static void main(String[] args) {
//        new MailUtil().send("收件人邮箱", "测试1", "内容主体");
        //new MailUtil().send("收件人邮箱", "测试1", "市劳动纠纷联赛积分了","C:/Users/guo/Desktop/Proguard.xml");
    }

    /**
     * 发送邮件
     * @param toEmail  收件人邮箱地址
     * @param subject 邮件标题
     * @param content  邮件内容 可以是html内容
     */
    public void send(String toEmail, String subject, String content) {
        Session session = loadMailSession();
        // session.setDebug(true);
        // 创建邮件消息
        MimeMessage message = new MimeMessage(session);
        try {
            // 设置发件人
            message.setFrom(new InternetAddress(user));
            Address[] a = new Address[1];
            a[0] = new InternetAddress(user);
            message.setReplyTo(a);
            // 设置收件人
            InternetAddress to = new InternetAddress(toEmail);
            message.setRecipient(MimeMessage.RecipientType.TO, to);
            // 设置邮件标题
            message.setSubject(subject);
            // 设置邮件的内容体
            message.setContent(content, "text/html;charset=UTF-8");
            // 发送邮件
            Transport.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }


    /**
     * 发送邮件 带附件
     * @param toEmail  收件人邮箱地址
     * @param subject  邮件标题
     * @param content  邮件内容 可以是html内容
     * @param attachPath 附件路径
     */
    public void send(String toEmail, String subject, String content, String attachPath) {
        Session session = loadMailSession();

        MimeMessage mm = new MimeMessage(session);
        try {
            //发件人
            mm.setFrom(new InternetAddress(user));
            //收件人
            mm.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail)); // 设置收件人
            // mm.setRecipient(Message.RecipientType.CC, new
            // InternetAddress("XXXX@qq.com")); //设置抄送人
            //标题
            mm.setSubject(subject);
            //内容
            Multipart multipart = new MimeMultipart();
            //body部分
            BodyPart contentPart = new MimeBodyPart();
            contentPart.setContent(content, "text/html;charset=utf-8");
            multipart.addBodyPart(contentPart);

            //附件部分
            BodyPart attachPart = new MimeBodyPart();
            FileDataSource fileDataSource = new FileDataSource(attachPath);
            attachPart.setDataHandler(new DataHandler(fileDataSource));
            attachPart.setFileName(MimeUtility.encodeText(fileDataSource.getName()));
            multipart.addBodyPart(attachPart);

            mm.setContent(multipart);
            Transport.send(mm);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    private Session loadMailSession() {
        try {
            // 配置发送邮件的环境属性
            final Properties props = new Properties();
            // 表示SMTP发送邮件,需要进行身份验证
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.host", ALIDM_SMTP_HOST);
            // props.put("mail.smtp.port", ALIDM_SMTP_PORT);
            // 如果使用ssl,则去掉使用25端口的配置,进行如下配置,
            props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.socketFactory.port", ALIDM_SMTP_PORT);//阿里云企业版
            props.put("mail.smtp.port",ALIDM_SMTP_PORT);//阿里云企业版
//            props.put("mail.smtp.socketFactory.port", "465");//阿里云个人版
//            props.put("mail.smtp.port","465");//阿里云个人版
            // 发件人的账号
            props.put("mail.user", user);
            // 访问SMTP服务时需要提供的密码
            props.put("mail.password", password);
            // 构建授权信息,用于进行SMTP进行身份验证
            Authenticator authenticator = new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    // 用户名、密码
                    String userName = props.getProperty("mail.user");
                    String password = props.getProperty("mail.password");
                    return new PasswordAuthentication(userName, password);
                }
            };
            // 使用环境属性和授权信息,创建邮件会话
            return Session.getInstance(props, authenticator);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("mail session is null");
        }
        return null;
    }

}

注:邮件发送成功 收件箱没有,查看垃圾信箱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值