javamail邮件发送

1。邮件发送使用的协议:
 SMTP:(重点)
Simple Message Transfer Protocal:简单消息传输协议。发送协议。
默认使用的端口:25
 POP:
Post Office Protocal:邮局协议。接收协议。
默认使用的端口:110
2。邮件发送的过程。
这里写图片描述
3。案例:
Message:代表着一封邮件。
从wangyanming624@163.com 往 wangyanminghncj@163.com发送邮件
案例一:只有文本的邮件

package sendmail;
import java.io.FileOutputStream;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

//发送邮件
public class MessageDemo1 {

    public static void main(String[] args) throws Exception {
        Properties props = new Properties();//key value:配置参数。真正发送邮件时再配置

        props.setProperty("mail.transport.protocol", "smtp");//指定邮件发送的协议,参数是规范规定的
        props.setProperty("mail.host", "smtp.163.com");//指定发件服务器的地址,参数是规范规定的
//      props.setProperty("mail.debug", "true");//邮件发送的调试模式,参数是规范规定的
        props.setProperty("mail.smtp.auth", "true");//请求服务器进行身份认证。参数与具体的JavaMail实现有关

        Session session = Session.getInstance(props);//发送邮件时使用的环境配置
        session.setDebug(true);
        MimeMessage message = new MimeMessage(session);

        //设置邮件的头
        message.setFrom(new InternetAddress("wangyanming624@163.com"));
        message.setRecipients(Message.RecipientType.TO, "wangyanminghncj@163.com");
        message.setSubject("This is only text message");
        //设置正文
        message.setContent("<h1>hello</h1>", "text/html");
//      message.setText("<h1>hello</h1>");//纯文本

        message.saveChanges();

        //发送邮件
        Transport ts = session.getTransport();
        ts.connect("wangyanming624", "your password");
        ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法
    }

}

案例二:文本中内嵌图片的邮件

package sendmail;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
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;

//发送邮件
public class MessageDemo2 {

    public static void main(String[] args) throws Exception {
        Properties props = new Properties();//key value:配置参数。真正发送邮件时再配置

        props.setProperty("mail.transport.protocol", "smtp");//指定邮件发送的协议,参数是规范规定的
        props.setProperty("mail.host", "smtp.163.com");//指定发件服务器的地址,参数是规范规定的
//      props.setProperty("mail.debug", "true");//邮件发送的调试模式,参数是规范规定的
        props.setProperty("mail.smtp.auth", "true");//请求服务器进行身份认证。参数与具体的JavaMail实现有关

        Session session = Session.getInstance(props);//发送邮件时使用的环境配置
        session.setDebug(true);
        MimeMessage message = new MimeMessage(session);

        //设置邮件的头
        message.setFrom(new InternetAddress("wangyanming624@163.com"));
        message.setRecipients(Message.RecipientType.TO, "wangyanminghncj@163.com");
        message.setSubject("开学通知");
        //设置正文

        //搞出文本部分
        MimeBodyPart textPart = new MimeBodyPart();
        textPart.setContent("aaa<img src='cid:tongzhi'/>aaa", "text/html");

        //搞图片部分
        MimeBodyPart imagePart = new MimeBodyPart();
        imagePart.setContentID("tongzhi");
        //把磁盘上的文件加到part中使用到了JAF框架
        DataHandler dh = new DataHandler(new FileDataSource("src/1.jpg"));
        imagePart.setDataHandler(dh);

        MimeMultipart mp = new MimeMultipart();
        mp.addBodyPart(textPart);
        mp.addBodyPart(imagePart);
        mp.setSubType("related");//有关系的

        message.setContent(mp);
        message.saveChanges();

        //发送邮件
        Transport ts = session.getTransport();
        ts.connect("wangyanming624", "your password");
        ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法
    }

}

案例三:文本中内嵌图片还有附件的邮件
这里写图片描述

package sendmail;

import java.io.FileOutputStream;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
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 MessageDemo3 {

    public static void main(String[] args) throws Exception {
        Properties props = new Properties();//key value:配置参数。真正发送邮件时再配置

        props.setProperty("mail.transport.protocol", "smtp");//指定邮件发送的协议,参数是规范规定的
        props.setProperty("mail.host", "smtp.163.com");//指定发件服务器的地址,参数是规范规定的
//      props.setProperty("mail.debug", "true");//邮件发送的调试模式,参数是规范规定的
        props.setProperty("mail.smtp.auth", "true");//请求服务器进行身份认证。参数与具体的JavaMail实现有关

        Session session = Session.getInstance(props);//发送邮件时使用的环境配置
//      session.setDebug(true);
        MimeMessage message = new MimeMessage(session);

        //设置邮件的头
        message.setFrom(new InternetAddress("wangyanming624@163.com"));
        message.setRecipients(Message.RecipientType.TO, "wangyanminghncj@163.com");
        message.setSubject("风机资料");
        //设置正文

        //搞出文本部分
        MimeBodyPart textPart = new MimeBodyPart();
        textPart.setContent("风机<img src='cid:mm'/>aaa", "text/html;charset=UTF-8");

        //搞图片部分
        MimeBodyPart imagePart = new MimeBodyPart();
        imagePart.setContentID("mm");
        //把磁盘上的文件加到part中使用到了JAF框架
        DataHandler dh = new DataHandler(new FileDataSource("src/风机.jpg"));
        imagePart.setDataHandler(dh);

        MimeMultipart mp = new MimeMultipart();
        mp.addBodyPart(textPart);
        mp.addBodyPart(imagePart);
        mp.setSubType("related");//有关系的


        MimeBodyPart textImageParts = new MimeBodyPart();
        textImageParts.setContent(mp);

        //创建附件部分
        MimeBodyPart attachmentPart = new MimeBodyPart();
        dh = new DataHandler(new FileDataSource("src/计划.docx"));
        String filename = dh.getName();
        System.out.println("dh:"+filename);
        attachmentPart.setDataHandler(dh);
        //手工设置一下文件名
        attachmentPart.setFileName(MimeUtility.encodeText(filename));


        MimeMultipart finalMp = new MimeMultipart();
        finalMp.addBodyPart(textImageParts);
        finalMp.addBodyPart(attachmentPart);
        finalMp.setSubType("mixed");

        message.setContent(finalMp);
        message.saveChanges();

        //发送邮件
        Transport ts = session.getTransport();
        ts.connect("wangyanming624", "your password");
        ts.sendMessage(message, message.getAllRecipients());//对象,用实例方法
    }

}
基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值