java发送邮件

本文介绍如何使用Java通过126邮箱服务器发送带附件的邮件,包括配置SMTP参数、创建MimeMessage实例及设置邮件内容等步骤。同时概述了邮件发送的基本原理。

JAVA发送邮件(可以带附件)

可以直接复制代码使用,注意:使用的是126邮箱,要加入的包,主要是:activation.jar,mail.jar,并且要删除原来myeclipe里面的javaee5 library

然后添加里面的javaee.jar包到lib下面即可。

 

package com.tl.util;

import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
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;
/**
 * 发送邮件
 * @author Administrator
 *
 */
public class SendMail {
 static int port = 25;

 static String server = "smtp.126.com";  //发件人使用发邮件的电子信箱服务器

 static String from = "Admin<>";  //显示你的发件人  像这样的

 

 static String user = ""; //邮箱名

 static String password = "xxxx";  //邮箱密码

 public static void sendEmail(String email, String subject, String body,String filename) {
 try {
 Properties props = new Properties();
 props.put("mail.smtp.host", server);
 props.put("mail.smtp.port", String.valueOf(port));
 props.put("mail.smtp.auth", "true");
 Transport transport = null;
 Session session = Session.getDefaultInstance(props, null);
 transport = session.getTransport("smtp");
 transport.connect(server, user, password);
 MimeMessage msg = new MimeMessage(session);
 msg.setSentDate(new Date());
 InternetAddress fromAddress = new InternetAddress(from);
 msg.setFrom(fromAddress);
 InternetAddress[] toAddress = new InternetAddress[1];
 toAddress[0] = new InternetAddress(email);
 msg.setRecipients(Message.RecipientType.TO, toAddress);
 msg.setSubject(subject, "UTF-8"); 
 
 MimeMultipart multi = new MimeMultipart(); 
 BodyPart textBodyPart = new MimeBodyPart(); //第一个BodyPart.主要写一些一般的信件内容。 
 textBodyPart.setText(body); 
 // 压入第一个BodyPart到MimeMultipart对象中。 
 multi.addBodyPart(textBodyPart); 
 
 FileDataSource fds = new FileDataSource(filename); //必须存在的文档,否则throw异常。 
 BodyPart fileBodyPart = new MimeBodyPart(); //第二个BodyPart 
 fileBodyPart.setDataHandler(new DataHandler(fds)); //字符流形式装入文件 
 fileBodyPart.setFileName("report.txt"); //设置文件名,可以不是原来的文件名。 
 multi.addBodyPart(fileBodyPart); 
 // MimeMultPart作为Content加入message 
 msg.setContent(multi); 
 
 msg.setFileName(filename);
 msg.saveChanges();
 transport.sendMessage(msg, msg.getAllRecipients());
 } catch (NoSuchProviderException e) {
 e.printStackTrace();
 } catch (MessagingException e) {
 e.printStackTrace();
 }
 }

//测试

 public static void main(String[] args) {
  sendEmail("LOVE YOU","哈哈! 才做好的,这个是带附件的,我是来测试做的,收到邮件请回我,是否有附件呢?","d:/a.txt");
 }
}

 

 

 

发送邮件的原理:

1,邮件服务器:现在Internet很多提供邮件服务的厂商:sinasohu163等等他们都有自己的邮件服务器。这些服务器类似于我们的邮局。它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。

2,电子邮箱:就是我们通常说的E-mail地址,确切的说就是我们在邮件服务器上面申请的一个账号,邮件服务器就会为该帐号分配一定的空间,从而就可以使用了。

3,SMTP协议:(Simple Mail Transfer Protocal)称为简单邮件传输协议,可以说是一种通讯规则,监听25号端口,重要特点:邮件可以通过不同网络上的主机接力式传送。

详情:http://baike.baidu.com/view/5450.htm

 

4.POP协议简介 
POP的全称是 Post Office Protocol ,即邮局协议,用于电子邮件的接收,它使用TCP的110端口,现在常用的是第三版,所以简称为 POP3。 

采用的cs模式

 

5.IMAP协议简介 
IMAP是Internet Message Access Protocol的缩写,邮件下载服务,可以让你在阅读完所有的邮件到达时间、主题、发件人、大小等信息后才作出是否下载的决定。

 

 

doc下面发送邮件:

1,smtp方式

开始---->运行---->cmd---->回车<enter>   ---------:<enter>就是回车的意思

telnet smtp.qq.com 25<enter>----------呼叫服务器

ehlo guoqianfang<enter>   ---------------主机的用户名

auth login<enter>             

YWFh<enter> --------------发送者账号的名字(必须是加密过的)

YmJiYg==<enter>  ---------------发送者账户的密码(必须是加密过的)

mail from:<aaa@qq.com><enter> ----------发送者的邮箱地址

rcpt to:<bbbb@qq.com><enter>  -----------接受者的邮箱地址

data<enter>        -------------下面是信的内容

你好 !我是郭倩芳。<enter>  ---------信的内容

.<enter>         ---------.”代表信结束

quit<enter>     -----------退出

 

2,用pop放松

查看邮件:

telnet pop.qq.com 110   ---------呼叫服务器

user bbbb    -------------发送者账号的名字

pass 111111    ----------发送者账户的密码

stat           ------------统计邮件

list -------------------邮件列表

retr 序号------------------查看哪个邮件的内容

 

注意在window7下面要telnet默认是没有开启的,需要手动设置:开始---》控制面板---》程序----》打开或关闭Windows功能--》

如图选中Telnet客服端。就可以运行上面的命令了。

 

 

这样就可以做注册的时候,验证邮箱了。

 

内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练与应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化与训练,到执行分类及结果优化的完整流程,并介绍了精度评价与通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者与实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程与关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优与结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置与结果后处理环节,充分利用ENVI Modeler进行自动化建模与参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值