关于javamail用来发送邮件

Java邮件发送
本文介绍了一个使用Java实现的简单邮件发送程序。通过创建一个名为MailSender的类,文章详细展示了如何配置SMTP服务器、设置发件人及收件人信息,并附带了如何添加附件的具体步骤。此外,还提供了一个测试类来验证邮件发送功能。

首先写一个类,用于得到与服务器连接的方式以及发件人收件人和邮件内容的信息:

package demo;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
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 sun.misc.BASE64Encoder;

public class MailSender{
    public void sendMail() throws Exception{
        Properties props = new Properties();
        props.put("mail.smtp.host", getHost());
        props.put("mail.smtp.auth", "true");
        Session session = Session.getDefaultInstance(props);
        session.setDebug(true);
        MimeMessage message = new MimeMessage(session);
        message.setFrom(new InternetAddress(getFromAddr()));
        message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));
        message.setSubject(getTitle());
        Multipart multipart = new MimeMultipart();
        BodyPart contentPart = new MimeBodyPart();
        contentPart.setText("这是我用Java程序发送的第一封邮件!呵呵!!!");//这里就是要发出去的邮件内容啦!
        multipart. addBodyPart(contentPart);
        if(getAttachPath() != null && getAttachName() != null){
            BodyPart attachmentPart= new MimeBodyPart();
            DataSource source = new FileDataSource(getAttachPath());
            attachmentPart.setDataHandler(new DataHandler(source));
            BASE64Encoder enc = new BASE64Encoder();
            attachmentPart.setFileName("=?GBK?B?"+enc.encode(getAttachName().getBytes())+"?=");
            multipart.addBodyPart(attachmentPart);
        }
        message.setContent(multipart);
        message.saveChanges();
        Transport transport = session.getTransport("smtp");
        transport.connect(host,getUsername(),getPassword());
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }

    private String host = null;
    private String fromAddr = null;
    private String toAddr = null;
    private String username = null;
    private String password = null;
    private String title = null;
    private String attachPath = null;
    private String attachName = null;
   
    public String getHost(){
        return host;
    }

    public void setHost(String host){
        this.host = host;
    }

    public String getFromAddr(){
        return fromAddr;
    }

    public void setFromAddr(String fromAddr){
        this.fromAddr = fromAddr;
    }

    public String getToAddr(){
        return toAddr;
    }

    public void setToAddr(String toAddr){
        this.toAddr = toAddr;
    }

    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 getTitle(){
        return title;
    }

    public void setTitle(String title){
        this.title = title;
    }

    public String getAttachPath(){
        return attachPath;
    }

    public void setAttachPath(String attachPath){
        this.attachPath = attachPath;
    }

    public String getAttachName(){
        return attachName;
    }

    public void setAttachName(String attachName){
        this.attachName = attachName;
    }
}

 

 

好了,基本上可以实现连接邮件服务器并发送了,接下来该写测试类来测试是否能够正确发送邮件,写个测试类:

package demo;

public class MailTest {
public static void main(String[] args){
        MailSender sender = new MailSender();
        sender.setHost("smtp.163.com"); //如果你要用什么邮箱就写什么邮箱的后缀名
        sender.setFromAddr("FromAddr@163.com");//发件人的邮箱地址
        sender.setToAddr("ToAddr@163.com");//收件人的邮箱地址
        sender.setUsername("邮箱用户名"); //发件人的用户名
        sender.setPassword("邮箱密码");//发件人的密码
        sender.setTitle("The first mail");//邮件的标题
        try {
        sender.sendMail();
        } catch (Exception e){
            e.printStackTrace();
        }
    }

}

那么也就实现发送邮件的功能了!!!

基于TROPOMI高光谱遥感仪器获取的大气成分观测资料,本研究聚焦于大气污染物一氧化氮(NO₂)的空间分布与浓度定量反演问题。NO₂作为影响空气质量的关键指标,其精确监测对环境保护与大气科学研究具有显著价值。当前,利用卫星遥感数据结合先进算法实现NO₂浓度的高精度反演已成为该领域的重要研究方向。 本研究构建了一套以深度学习为核心的技术框架,整合了来自TROPOMI仪器的光谱辐射信息、观测几何参数以及辅助气象数据,形成多维度特征数据集。该数据集充分融合了不同来源的观测信息,为深入解析大气中NO₂的时空变化规律提供了数据基础,有助于提升反演模型的准确性与环境预测的可靠性。 在模型架构方面,项目设计了一种多分支神经网络,用于分别处理光谱特征与气象特征等多模态数据。各分支通过独立学习提取代表性特征,并在深层网络中进行特征融合,从而综合利用不同数据的互补信息,显著提高了NO₂浓度反演的整体精度。这种多源信息融合策略有效增强了模型对复杂大气环境的表征能力。 研究过程涵盖了系统的数据处理流程。前期预处理包括辐射定标、噪声抑制及数据标准化等步骤,以保障输入特征的质量与一致性;后期处理则涉及模型输出的物理量转换与结果验证,确保反演结果符合实际大气浓度范围,提升数据的实用价值。 此外,本研究进一步对不同功能区域(如城市建成区、工业带、郊区及自然背景区)的NO₂浓度分布进行了对比分析,揭示了人类活动与污染物空间格局的关联性。相关结论可为区域环境规划、污染管控政策的制定提供科学依据,助力大气环境治理与公共健康保护。 综上所述,本研究通过融合TROPOMI高光谱数据与多模态特征深度学习技术,发展了一套高效、准确的大气NO₂浓度遥感反演方法,不仅提升了卫星大气监测的技术水平,也为环境管理与决策支持提供了重要的技术工具。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值