利用JAVA API发送E-mail

Ollama压力测试:systemd服务配置与系统级调优实战 大模型本地服务压测本质是系统工程,而非单纯API性能验证。其核心在于理解Linux资源管控机制(cgroup v2、systemd服务单元)、进程生命周期管理及GPU显存分配原理。技术价值体现在保障Ollama在高并发下的稳定性与可预测性,支撑Dify/LangChain等AI应用底座的SLA交付。典型应用场景包括私有化部署验收、云服务器(如阿里云ECS)资源配置决策、以及面向Agent架构的并发容量规划。本文聚焦Ollama在systemd模式下的深度调优,涵盖MemoryLimit、TasksMax、L 阅读详情

 /**
 *
 * SendMail.java
 */
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.activation.URLDataSource;
import javax.mail.BodyPart;
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 javax.mail.internet.MimeUtility;

//import javax.mail.internet.MailDateFormat;

public class SendMail {
        public static String TEXT = "text/plain;charset=gb2312";
        public static String HTML = "text/html;charset=gb2312";
        private String host; //邮件服务器
        private String user; //用户名
        private String pass;//用户密码
        private String from;//发信人
        private String to;//收信人
        private String cc;//Carbon Copy, 抄送邮件给某人
        private String bc;//bcc Blind Carbon Copy,隐蔽副本 隐蔽抄送给某人
        private String subject;//邮件主题
        private BodyPart body;//邮件内容
        private boolean needAuth; //是否需要认证
        private List attaches;//邮件附件
/**
 * 构造方法
 *
 */
        public SendMail() {
                needAuth = true;
                attaches = new ArrayList();
        }
        /**
         * 构造方法
         * @param host
         */
        public SendMail(String host) {
                needAuth = true;
                attaches = new ArrayList();
                this.host = host;
        }
        /**
         * 构造方法
         * @param host
         * @param user
         * @param pass
         */
        public SendMail(String host, String user, String pass) {
                needAuth = true;
                attaches = new ArrayList();
                this.host = host;
                this.user = user;
                this.pass = pass;
        }
//设置邮件服务器是否需要认证
        public void setNeedAuth(boolean needAuth) {
                this.needAuth = needAuth;
        }
        public void setFrom(String from) {
                this.from = from;
        }
        public void setTo(String to) {
                this.to = to;
        }
        public String getPass() {
                return pass;
        }
        public String getUser() {
                return user;
        }
        public void setPass(String string) {
                pass = string;
        }
        public void setUser(String string) {
                user = string;
        }

        public String getFrom() {
                return from;
        }
        public String getHost() {
                return host;
        }
        public boolean isNeedAuth() {
                return needAuth;
        }
        public String getSubject() {
                return subject;
        }
        public void setHost(String string) {
                host = string;
        }
        public void setBlindTo(String bc) {
                this.bc = bc;
        }
        public void setCopyTo(String cc) {
                this.cc = cc;
        }
        public void setSubject(String subject) {
                this.subject = subject;
        }
/**
 * 设置邮件内容的形式
 * @param string
 * @param contentType
 */
        public void setBody(String string, String contentType) {
                try {
                        body = new MimeBodyPart();
                        DataHandler dh = new DataHandler(string, contentType);
                        body.setDataHandler(dh);
                } catch (Exception exception) {
                }
        }
/**
 * 设置邮件的内容的格式为文本格式
 * @param string
 */
        public void setBodyAsText(String string) {
                setBody(string, TEXT);
        }
/**
 * 以HTMl的形式存放内容
 * @param string
 */
        public void setBodyAsHTML(String string) {
                setBody(string, HTML);
        }
/**
 * 从文件中自动导入邮件内容
 * @param filename
 */
        public void setBodyFromFile(String filename) {
                try {
                        BodyPart mdp = new MimeBodyPart();
                        FileDataSource fds = new FileDataSource(filename);
                        DataHandler dh = new DataHandler(fds);
                        mdp.setDataHandler(dh);
                        attaches.add(mdp);
                } catch (Exception exception) {
                }
        }
/**
 * 从一个URL导入邮件的内容
 * @param url
 */
        public void setBodyFromUrl(String url) {
                try {
                        BodyPart mdp = new MimeBodyPart();
                        URLDataSource ur = new URLDataSource(new URL(url));
                        DataHandler dh = new DataHandler(ur);
                        mdp.setDataHandler(dh);
                        attaches.add(mdp);
                } catch (Exception exception) {
                }
        }
/**
 * 将String中的内容存放入文件showname,并将这个文件作为附件发送给收件人
 * @param string 为邮件的内容
 * @param showname 显示的文件的名字
 */
        public void addAttachFromString(String string, String showname) {
                try {
                        BodyPart mdp = new MimeBodyPart();
                        DataHandler dh = new DataHandler(string, TEXT);
                        mdp.setFileName(MimeUtility.encodeWord(showname, "gb2312", null));
                        mdp.setDataHandler(dh);
                        attaches.add(mdp);
                } catch (Exception exception) {
                }
        }
/**
 * filename为邮件附件
 *在收信人的地方以showname这个文件名来显示
 * @param filename
 * @param showname
 */
        public void addAttachFromFile(String filename, String showname) {
                try {
                        BodyPart mdp = new MimeBodyPart();
                        FileDataSource fds = new FileDataSource(filename);
                        DataHandler dh = new DataHandler(fds);
                        mdp.setFileName(MimeUtility.encodeWord(showname, "gb2312", null));
                        mdp.setDataHandler(dh);
                        attaches.add(mdp);
                } catch (Exception exception) {
                }
        }
/**
 * 将互联网上的一个文件作为附件发送给收信人
 * 并在收信人处显示文件的名字为showname
 * @param url
 * @param showname
 */
        public void addAttachFromUrl(String url, String showname) {
                try {
                        BodyPart mdp = new MimeBodyPart();
                        URLDataSource ur = new URLDataSource(new URL(url));
                        DataHandler dh = new DataHandler(ur);
                        mdp.setFileName(MimeUtility.encodeWord(showname, "gb2312", null));
                        mdp.setDataHandler(dh);
                        attaches.add(mdp);
                } catch (Exception exception) {
                }
        }
/**
 * 发送邮件,需要身份认证
 * @throws Exception
 */
        public void send() throws Exception {
                try {
                        Properties props = new Properties();
                        if (host != null && !host.trim().equals(""))
                                props.put("mail.smtp.host", host);
                        else
                                throw new Exception("没有指定发送邮件服务器");
                        if (needAuth)
                                props.put("mail.smtp.auth", "true");
                        Session s = Session.getInstance(props, null);
                        MimeMessage msg = new MimeMessage(s);
                        //设置邮件主题
                        msg.setSubject(subject);
                        //设置邮件发送时间
                        msg.setSentDate(new Date());
                        //制定发件人
                        if (from != null)
                                msg.addFrom(InternetAddress.parse(from));
                        else
                                throw new Exception("没有指定发件人");
                        //指定收件人
                        if (to != null)
                                msg.addRecipients(javax.mail.Message.RecipientType.TO,
                                                InternetAddress.parse(to));
                        else
                                throw new Exception("没有指定收件人地址");
                        //指定抄送给谁
                        if (cc != null)
                                msg.addRecipients(javax.mail.Message.RecipientType.CC,
                                                InternetAddress.parse(cc));
                        //制定隐藏抄送给谁
                        if (bc != null)
                                msg.addRecipients(javax.mail.Message.RecipientType.BCC,
                                                InternetAddress.parse(bc));
                        Multipart mm = new MimeMultipart();
                        //设置邮件的附件
                        if (body != null)
                                mm.addBodyPart(body);
                        for (int i = 0; i < attaches.size(); i++) {
                                BodyPart part = (BodyPart) attaches.get(i);
                                mm.addBodyPart(part);
                        }
//   设置邮件的内容
                        msg.setContent(mm);
                        //保存所有改变
                        msg.saveChanges();
                        //发送邮件服务器(SMTP),简单邮件传输协议
                        Transport transport = s.getTransport("smtp");
                        //访问邮件服务器
                        transport.connect(host, user, pass);
                        //发送信息
                        transport.sendMessage(msg, msg.getAllRecipients());
                        //关闭邮件传输
                        transport.close();
                } catch (Exception e) {
                        throw new Exception("发送邮件失败:", e);
                }
        }
}

 

sendmail.jsp:

  <%@ page contentType="text/html;charset=gb2312" language="java" %>
<%@ page import="ten.*,simpleforum.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
 <title>发送邮件测试</title>
 <meta name="copyright" content="邮件发送测试. All rights reserved.">
 <meta name="Keywords" content="jsp,servlet,mail">
 <meta name="Description" content="发送邮件测试">
 <meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>
<body>
<%
 String host = ParamUtil.getParameter(request,"host");
 String user = ParamUtil.getParameter(request,"user");
 String password = ParamUtil.getParameter(request,"password");
 String subject = ParamUtil.getParameter(request,"subject");
 String to = ParamUtil.getParameter(request,"to");
 String from = ParamUtil.getParameter(request,"from");
 String bodyashtml = ParamUtil.getParameter(request,"bodyashtml");
 String attachfile = ParamUtil.getParameter(request,"attachfile");
 out.println("<br>"+host);
 out.println("<br>"+user);
 //out.println("<br>"+password);
 out.println("<br>"+subject);
 out.println("<br>"+to);
 out.println("<br>"+from);
 out.println("<br>"+bodyashtml);
 out.println("<br>"+attachfile);
 try {
   SendMail send = new SendMail();
   send.setHost(host);
   send.setUser(user);
   send.setPass(password);
   send.setSubject(subject);
   send.setTo(to);
   send.setFrom(from);
   send.setBodyAsHTML(bodyashtml);
   send.addAttachFromFile(attachfile,"aa.txt");
   send.send();
   out.println("<br>邮件发送成功!!!");
  } catch (Exception e) {
   out.println("<br>"+e.getMessage());
   out.println("<br>邮件发送失败!!!");
  }
%>
</body>
</html>

testmail.jsp:

<%@ page contentType="text/html;charset=gb2312" language="java" %>
<%@ page import="ten.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
 <title>发送邮件测试</title>
 <meta name="copyright" content="邮件发送测试. All rights reserved.">
 <meta name="Keywords" content="jsp,servlet,mail">
 <meta name="Description" content="发送邮件测试">
 <meta http-equiv="content-type" content="text/html; charset=gb2312">
</head>
<body>
<form method="post" action="sendmail.jsp">
  <table border="1" cellpadding="0" cellspacing="3" align="center">
   <tr>
    <td>邮件服务器</td><td><input type="text" name="host" value="mail.keylab.net"></td>
   </tr>
   <tr>
    <td>用户名</td><td><input type="text" name="user" value="wangmj@keylab.net"></td>
   </tr>
   <tr>
    <td>密码</td><td><input type="password" name="password" value="root3wmj"></td>
   </tr>
   <tr>
    <td>邮件主体</td><td><input type="text" name="subject" value="邮件发送测试"></td>
   </tr>
   <tr>
    <td>收件人</td><td><input type="text" name="to" value="wangmj@keylab.net"></td>
   </tr>
   <tr>
    <td>发送人</td><td><input type="text" name="from" value="wangmj@keylab.net"></td>
   </tr>
   <tr>
    <td>邮件内容</td><td><input type="text" name="bodyashtml" value="大家好!邮件测试。"></td>
   </tr>
   <tr>
    <td>附件</td><td><input type="text" name="attachfile" value="d://myforum.txt"></td>
   </tr>
   <tr>
    <td><input type="submit" name="submit" value="发送" ></td>
    <td><input type="reset" name="reset" value="重置" ></td>
   </tr>
  </table>
</form>
</body>
</html>

 

基于web的java Mail的邮件发送系统的详解 基于web的java Mail邮件发送的深究 阅读详情

相关推荐

【Java】javax.mail发送邮件

maven依赖 <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> ...

Mr_EvanChen的Blog 1131

java 发邮件 乱码_JavaMail发送中文邮件乱码的解决 | 学步园

我们的程序经常会出现这样一个问题,在WinXp下测试是正常的,而到了服务器(Linux操作系统)上就出现这个问题。1、 由于邮件我写的程序的邮件主题是写在配置文件(.properties)中的,再通过native2ascii把中文邮件主题从本地码(简体中文Wind Xp 是GBK)转换为Unicode编码。而Java程序读取properties配置文件内容时,是根据操作的编码方式来读取的,这...

weixin_39580041的博客 915

JAVA高级篇--Java 发送邮件使用

JAVA高级篇--Java 发送邮件使用

xiaoaque的博客 686

使用java发送e_mail

如果需要使用java发送e-mail,需要三个库文件 activation.jar、commons-email-1.1.jar 和 mail.jar HtmlEmail email = new HtmlEmail();email.setHostName("mail.fudan.edu.cn");//设置发信的smtp服务器email.addTo(customerEmail, usern

gyq5319920的专栏 1016

用Java Socket实现SMTP邮件发送

目录: 1、邮件基础概念 2、Java Mail API介绍 3、收发邮件代码示例 PS:如果你想直接拿代码用,可以直接跳到第3部分。 ** 一、邮件基础概念 ** 1.1 邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器。例如现在Internet很多提供邮件服务的厂商:sina、sohu、163等等他们都有自己的邮件服务器。 这些邮件服务器类似于现实生...

zhaohong_bo的专栏 5853

Jakarta Mail TLS 发送邮件

Jakarta Mail TLS 发送邮件

ideal-lingyun 1524

java mail pom_Java实现邮件发送

JavaWeb实现邮件发1、传输协议:SMTP协议处理用户邮件发送的请求。POP3协议处理用户邮件接收请的求。2、所需要的jar包mail-1.4.7.jar : 点击下载activation-1.1.1.jar : 点击下载Pom.xml文件:javax.mailmail1.4.7javax.activationactivation1.1.13、发送一封纯文本的邮件package com.xu;...

weixin_34034295的博客 1267

Oracle-OGG trail 文件大小引起的进程异常 OGG-01172

监控OGG目标端进程,其中一个进程异常,状态为 ABENDED,start repa 执行失败。进入OGG报告目录检查运行报告 2015-04-20 09:38:36 ERROR OGG-01172 Discard file (/ogg/oggrm/11.2/dirdat/repa.dsc) exceeded max bytes (2000000000). 总结处理方法,从根本上解决问题。

xdyzgjy的专栏 7956

从Java应用程序中发送E-mail

Java作为一种网络编程语言具有强大的网络编程功能可以用仅仅几条语句完成其他语言需要的几十条甚至上百条语句所能完成的功能这里我试着用Java编写了一个可以用来发送Email的程序很简单仅仅作为示例   首先需要了解一下SMTP协议(简单邮件传输协议)是定义邮件传输的协议它是基于TCP服务的应用层协议由RFC所定义SMPT协议规定的命令是以明文方式进行的下表说明了SMTP服务器发送电子邮件所需

zl348234192的专栏 1047

【博弈论基础与几大经典模型】古诺模型、斯塔克尔伯格模型Stackelberg Game、价格领导模型、Bertrand模型、Sweezy模型

博弈论中经典模型☞古诺模型、斯塔克尔伯格模型、价格领导模型等

学习记录 3万+

Modbus 通信协议详解

Modbus是由 Modicon(现为施耐德电气公司的一个品牌)在 1979 年发明的,是全球第一个真正用于工业现场的总线协议。ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。其系统结构既包括硬件、亦包括软件。它可应用于各种数据采集和过程监控。为更好地普及和推动Modbus在基于以太网上的分布式应用,目前施耐德公司已将Modbus协议的所有权移交给 IDA(,分布式自动化接口)组织,并成立了 Modbus-IDA 组织。

Projectsauron 的博客 7万+

第30章 使用Spring发送E-mail(一)

本章内容思甜前,先忆苦Spring的E-mail抽象层分析Spring的E-mail支持在实际开发中的应用。

hello world 11万+

别再让步进电机‘发烧’了!用FOC闭环驱动实现精准力矩控制(基于P0斩波恒流版)

本文详细介绍了如何利用FOC闭环驱动技术(基于P0斩波恒流版)解决步进电机过热和力矩控制不精准的问题。通过对比传统开环控制的缺陷,展示了FOC在降低温度、提升精度和能效方面的显著优势,并提供了硬件配置、软件实现及性能优化的完整方案。

weixin_30872157的博客 567

Java 发送邮件

使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF)。和上一个例子很相似,除了我们要使用 setContent() 方法来通过第二个参数为 "text/html",来设置内容来指定要发送HTML 内容。如果你使用第三方邮件服务器如QQ的SMTP服务器,可查看文章底部用户认证完整的实例。下面是一个发送带有附件的 E-mail的例子。编译并运行你的程序来发送一封带有附件的邮件。

2401_86544677的博客 1147

台积电技术研发实力

台积电技术研发实力 台积电在半导体行业的地位毋庸置疑。他们究竟有多强大,大部分读者了解得可能非常片面。从最新公布的2019年财报里,看看台积电的真正实力。 一、台积电在市场上的地位 根据公司财报,台积公司在先进制程技术、特殊制程技术,以及先进封装技术的发展上持续领先全球集成电路制造服务领域,2019年的市场占有率为52%。台积公司总体营收以地区划分(主要依据客户营运总部所在地),来自北美市场的营收占台积公司总体营收的60%、日本与中国大陆以外的亚太市场占9%、中国大陆市场占20%、欧洲、中东及非洲市场占6

吴建明wujianming_110117 1901

Qt UI界面美化教程1:【“飞扬青云” Qt精美控件】使用教程1

相信很多小伙伴在使用Qt Widget的过程中都会遇到一个问题,开发出来的界面,丑!丑!丑!当然Qt做界面美化可以用到QSS,需要对前端知识有一定了解,后续本套教程将会做讲解。本篇文章,我们直接站在巨人(大佬飞扬青云)的肩膀上,使用他开发好的163款自定义控件,请大家一定支持他,去给他小心心,他的个人主页:本篇文章只讲述如何在 QtDesigner 安装这些控件。

2401_87556704的博客 1419

java mail 邮箱发送_Java Mail发送邮件

importjava.io.InputStream;importjava.util.Date;importjava.util.List;importjava.util.Properties;importjavax.mail.MessagingException;importjavax.mail.Session;importjavax.mail.Transport;importjavax.mail....

weixin_39875516的博客 704

【好玩的游戏项目】使用Docker快速部署属于你的RPG网页小游戏

【好玩的游戏项目】使用Docker快速部署属于你的RPG网页小游戏

jks212454的博客 5576

Java使用mail实现邮件发送

记录学习:邮件发送 创建项目: 邮箱->设置->账号->开启smtp pom依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>2.3.2.RELEASE&l

weixin_45004745的博客 963

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

java发送带有附件的 E-mail

1.下面是一个发送带有附件的 E-mail的例子。假设你的本地主机已经连接到网络。 使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) 。 JavaMail mail.jar 1.4.5 和 JAF(版本 1.1.1) activation.jar // 文件名 Se...

a754315344的博客 811

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java mail 学习笔记

JAVA MAIL 学习 笔记电子邮件协议的简介SMTP 简单邮件传输SMTP是Simple Mail Transfer Protocol的简称,即简单邮件传输协议。该协议定义了邮件客户端软件和SMTP服务器之间,以及两台SMTP服务器之间的通信规则。在Java Mail API中,基于Java Mail的程序将与本公司或Internet服务提供商(ISP)的SMTP服务器通信,该SMTP服务器将会

吴杨的博客 4757

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

使用Java-mail 发送邮件

首先:我们准备工作需要准备java-mail.jarPOP3/SMTP服务 以qq为例:smtp.qq.com发送邮箱的账号 *********.@qq.com发送邮箱授权码 获取流程如下进入邮箱,点击设置拉到最后,将POP3服务开启之后生成授权码获取授权码这样 准备工作基本完成就可以写代码了这是自己写的一个工具类,注释也加上了,虽然自带debug信息,但是那个比较多,所以在每个方法中打...

Amour恋空的博客 2074
上一篇: 从Mail Server中删除一条消息
下一篇: 用servlet动态生成图片
hjpengjava
博客等级 码龄18年 5粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值