java使用阿里邮箱发送邮件

发送邮件的帖子很多,但针对阿里的邮箱不是很多,不过大致相同。

通过阿里邮箱发送邮件有两种方式“邮件推送”,“企业邮箱”。

邮件推送:需要在阿里云上面根据你的域名,申请一个阿里邮箱地址。然后在代码中配置相关信息即可发送,这个官方有文档,地址:点击飞过去
坑爹项:发送的记录没有地方可以查询,只能通过自己系统去记录。

企业邮箱:通过自己的阿里云账号,密码,发送邮件。

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
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;

import org.apache.commons.lang3.StringUtils;

public class AliyunMail {
    private static final String ALIDM_SMTP_HOST = "smtp.qiye.aliyun.com";
	
    private static final String ALIDM_SMTP_PORT = "25";// 或80

    
    /**
     * @param sendAddress 发件人地址
     * @param sendPassword 发件人密码
     * @param host 协议
     * @param port端口
     * @param subject 标题
     * @param content 内容
     * @param filePath 附件地址
     * @param CC 抄送人
     * @throws Exception 
     * @throws AddressException 
     */
    public static void sendMail(String sendAddress,String sendPassword,String host,String port,String subject,String content,String internetAddress,String filePath,String CC) throws AddressException, Exception {
             //设置SSL连接、邮件环境
         Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
         final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
         Properties props = System.getProperties();
         props.setProperty("mail.smtp.host", host);
         props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
         props.setProperty("mail.smtp.socketFactory.fallback", "false");
         props.setProperty("mail.smtp.port", port);//设置端口
         props.setProperty("mail.debug", "true");//启用调试
         props.setProperty("mail.smtp.socketFactory.port", "465");
         props.setProperty("mail.smtp.auth", "true");
         //建立邮件会话
         Session session = Session.getDefaultInstance(props, new Authenticator() {   //身份认证
             protected PasswordAuthentication getPasswordAuthentication() {
                 return new PasswordAuthentication(sendAddress, sendPassword);//发件人账号、密码
             }
         });
         //建立邮件对象
         MimeMessage message = new MimeMessage(session);
         //设置邮件的发件人、收件人、主题
         //附带发件人名字
         //  message.setFrom(new InternetAddress("from_mail@qq.com", "optional-personal"));
         message.setFrom(new InternetAddress(sendAddress));//发件人账号
         message.setRecipients(Message.RecipientType.TO, internetAddress);//收件人账号
         
         //标题
         message.setSubject(subject);//邮件标题
         
         //内容
         Multipart multipart = new MimeMultipart();
         BodyPart contentPart = new MimeBodyPart();
         contentPart.setContent(content, "text/html;charset=utf-8");//邮件内容
         multipart.addBodyPart(contentPart);
         
         //附件部分
         if (StringUtils.isNotBlank(filePath)) {
        	 BodyPart attachPart = new MimeBodyPart();
        	 FileDataSource fileDataSource = new FileDataSource(filePath);//附件地址 D:/题库上传模板v1.xlsx
        	 attachPart.setDataHandler(new DataHandler(fileDataSource));
        	 attachPart.setFileName(MimeUtility.encodeText(fileDataSource.getName()));
        	 multipart.addBodyPart(attachPart);
         }
         
         message.setContent(multipart);
         
         //抄送地址
         if (StringUtils.isNotBlank(CC)) {
        	 InternetAddress[] internetAddressCC = new InternetAddress().parse(CC);
        	 message.setRecipients(Message.RecipientType.CC, internetAddressCC);
         }
         
         //发送邮件
         Transport.send(message);
    }
    public static void main(String[] args) {
    	try {
			sendMail("你的邮箱账号", "你的邮箱密码", ALIDM_SMTP_HOST, ALIDM_SMTP_PORT, "subject test",
					"<H1>AAAA</H1>", "接收人邮箱账号", null, null);
		} catch (Exception e) {
			System.out.println("出现异常");
		}
	}
 }

就这么简单

注意, 打开这个选项,发送的邮件会保存到发件箱中。

在这里插入图片描述
在这里插入图片描述

需要框架的可以找我,各种私活利器。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值