返回顶部
首页 > 资讯 > 精选 >用JavaMail API编写可带附件的邮件发送程序(转)
  • 291
分享到

用JavaMail API编写可带附件的邮件发送程序(转)

2023-06-03 06:06:41 291人浏览 薄情痞子
摘要

利用Sun公司提供的JavaMail api可以很方便的开发邮件发送程序。也许你已经可以利用它来发送一段简单的文本了,但想不想使你的程序像OUTLOOK一样也能发送附件呢?本文在简单介绍了JavaMail之后,详细讲解了一段完整的送信的Ja

利用Sun公司提供的JavaMail api可以很方便的开发邮件发送程序。也许你已经可以利用它来发送一段简单的文本了,但想不想使你的程序像OUTLOOK一样也能发送附件呢?本文在简单介绍了JavaMail之后,详细讲解了一段完整的送信的JavaBean及一个十分轻巧的servlet。


(没有装载JavaMail API的读者,可以到此站点下载,并按照Readme.txt设置好ClassPath)


一、JavaMail中一些我们需要的类


1.Properties


JavaMail需要Properties来创建一个session对象,其属性值就是发送邮件的主机,如:


Properties props = new Properties ();
props.put("mail.smtp.host", "smtp.xxxx.com");//可以换上你的smtp主机名,就像你在OutLook中设置smtp主机名一样。



2.Session


所有的基于JavaMail的程序都至少需要一个或全部的对话目标。


Session session = Session.getInstance(props, null);



3.MimeMessage


信息对象将把你所发送的邮件真实的反映出来。


MimeMessage msg = new MimeMessage(session);



4.Transport


邮件的发送是由Transport来完成的:


Transport.send(msg);



二、我们自己创建的可发送附件的类


import java.util.* ;
import java.io.* ;
import javax.mail.* ;
import javax.mail.internet.* ;
import javax.activation.* ;
public class Mail {
//定义发件人、收件人、主题等
String to="";
String from="";
String host="";
String filename="";
String subject="";
//用于保存发送附件的文件名的集合
Vector file = new Vector();
//做一个可以传发件人等参数的构造
public Mail (String to,String from,String smtpServer,String subject){
//初始化发件人、收件人、主题等
this.to=to;
this.from=from;
this.host=smtpServer;
this.subject=subject;
}
//该方法用于收集附件名
public void attachfile(String fname){
file.addElement(fname);
}
//开始发送信件的方法
public boolean startSend(){
//创建Properties对象
Properties props = System.getProperties();
//创建信件服务器
props.put("mail.smtp.host", host);
//得到默认的对话对象
Session session=Session.getDefaultInstance(props, null); try {
//创建一个消息,并初始化该消息的各项元素
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address={new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO,address);
msg.setSubject(subject);
//后面的BodyPart将加入到此处创建的Multipart中
Multipart mp = new MimeMultipart();
//利用枚举器方便的遍历集合
Enumeration efile=file.elements();
//检查序列中是否还有更多的对象
while(efile.hasMoreElements()){
MimeBodyPart mbp=new MimeBodyPart();
//选择出每一个附件名
filename=efile .nextElement().toString();
//得到数据源
FileDataSource fds=new FileDataSource(filename);
//得到附件本身并至入BodyPart
mbp.setDataHandler(new DataHandler(fds));
//得到文件名同样至入BodyPart
mbp.setFileName(fds.getName());
mp.addBodyPart(mbp);
}
//移走集合中的所有元素
file.removeAllElements();
//Multipart加入到信件
msg.setContent(mp);
//设置信件头的发送日期
msg.setSentDate(new Date());
//发送信件
Transport.send(msg);
} catch (MessagingException mex) {
mex.printStackTrace();
Exception ex = null;
if ((ex=mex.getNextException())!=null){
ex.printStackTrace();
}
return false;
}
return true;
}
}



三、一个简单的servlet


import javax.servlet.*;
import javax.servlet.Http.*;
import java.io.*;
public class SendMail extends
httpservlet implements SingleThreadModel{
public void init(ServletConfig Conf)
throws ServletException {
super.init(Conf);
}
public void doPost(HttpServletRequest
Req, HttpServletResponse Res)
throws ServletException, IOException {
try{
//实例化刚才我们做的类,并按其构造传进相应的参数
Mail sendmail=newMail("zhang@263.net",
"chtwoy@21cn.com","smtp.21cn.com","test");
sendmail.attachfile("table.pdf");
sendmail.startSend();
}catch(Exception e){
e.printStackTrace();
}
}
public void destroy() {
}
}



四、小结


至此,你已经可以在邮件中添加附件了,而且可以是多个。像这样,将响应与逻辑相分离对代码的扩展和维护是相当有好处的。若Beans与servlet不在同一个包下,别忘了“import”。


为推出更好的文章请支持本站文章评比!


摘自“Java家” http://www.javajia.com
欢迎转载,但请保留文章出处[@more@]

--结束END--

本文标题: 用JavaMail API编写可带附件的邮件发送程序(转)

本文链接: https://lsjlt.com/news/233218.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 用JavaMail API编写可带附件的邮件发送程序(转)
    利用Sun公司提供的JavaMail API可以很方便的开发邮件发送程序。也许你已经可以利用它来发送一段简单的文本了,但想不想使你的程序像OUTLOOK一样也能发送附件呢?本文在简单介绍了JavaMail之后,详细讲解了一段完整的送信的Ja...
    99+
    2023-06-03
  • JSP与JavaMail如何写邮件发送程序
    这篇文章主要介绍JSP与JavaMail如何写邮件发送程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先,我们先写一个撰写邮件的html程序index.htm,如下:-----------------------...
    99+
    2023-06-03
  • JSP与JavaMail如何编写灵活的邮件发送程序
    这篇文章给大家分享的是有关JSP与JavaMail如何编写灵活的邮件发送程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。更改后的撰写界面程序如下:--------------------------------...
    99+
    2023-06-03
  • python发送带附件的邮件
      来源:http://snipperize.todayclose.com/snippet/py/Send-email-with-p_w_upload--53762/ Send email with p_w_upload import sm...
    99+
    2023-01-31
    附件 邮件 python
  • 用JavaMail写发送邮件程序碰到的问题是什么
    用JavaMail写发送邮件程序碰到的问题是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。用JavaMail写发送邮件程序碰到的问题这几天在用JavaMai...
    99+
    2023-06-03
  • delphi 7邮件发送程序编写
    以下是一个简单的Delphi 7邮件发送程序的示例代码:```delphiusesWindows, Messages, SysUti...
    99+
    2023-09-28
    delphi
  • 怎么用vbs发送带附件的邮件
    这篇文章主要介绍了怎么用vbs发送带附件的邮件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。function Send_mail(You_Account,You_P...
    99+
    2023-06-08
  • python3使用smtplib发送邮件,带xlsx附件
    最近在做一个统计报表,需要发送邮件,并带附件的。在之前的文章中https://www.cnblogs.com/xiao987334176/p/10022026.html已经实现了发送邮件,但是没有实现发送附件功能。 send_ma...
    99+
    2023-01-31
    发送邮件 附件 smtplib
  • 如何用Python发送带有附件的邮件
    如何用Python发送带有附件的邮件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python 发送带有附件的邮件条件使用from django.core.ma...
    99+
    2023-06-02
  • Android实现带附件的邮件发送功能
    本文实例讲解了基于基于JMail实现Android邮件发送功能,分享给大家供大家参考,具体内容如下 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点...
    99+
    2022-06-06
    邮件 Android
  • GoLang:无法发送带附件的电子邮件
    php小编草莓今天给大家分享一篇关于GoLang的问题:无法发送带附件的电子邮件。在日常开发中,发送带附件的电子邮件是一个常见需求,但有时候我们会遇到一些问题。本文将介绍如何解决这个问...
    99+
    2024-02-11
  • Python中Django发送带图片和附件的邮件
    最近需要做集团的SRC系统。暂无安全研发,所以只能找我这个小菜兼职开发。系统使用Django框架,在整个过程中,有许多奇特的需求。在某项需求中,需要给厂商用户发送富文本邮件,漏洞详情,这个折腾了一下,感觉略...
    99+
    2022-06-04
    附件 邮件 图片
  • springboot(java)使用javamail实现邮件的接收、转发、发送、清除
    前言 最近在弄邮件相关的功能,被搞的头大,很多找的方法根本不知道该怎么往下走,就目前为止, 经过各种的碰壁和失败,就整理出来如何使用javamail实现邮件的接收、转发、发送、清除 不单单是分享,也为...
    99+
    2023-09-24
    java spring boot 服务器
  • autojs使用intent发送邮件带附件实现示例
    目录正文环境正文 小米自带邮箱: 附件, 标题, 内容 这三个正常, 收件人为空; QQ邮箱: 全部正常 因此, 我给intent设置了QQ邮箱的包名 function sendE...
    99+
    2023-01-18
    autojs intent发邮件 autojs intent
  • Java怎么实现批量发送带附件的邮件
    这篇文章主要讲解了“Java怎么实现批量发送带附件的邮件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么实现批量发送带附件的邮件”吧!实体类(注意注释)代码详情如下:package...
    99+
    2023-06-22
  • Java如何实现带附件的邮件发送功能
    这篇文章主要讲解了Java如何实现带附件的邮件发送功能,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。需要导入mail.jar、activation.jar这两个邮件发送的jar包,可在网上搜索并下载需要设置相关...
    99+
    2023-05-31
    java ava
  • Java实现批量发送带附件的邮件代码
    目录前言实体类(注意注释)实现类 方法中调用,详情如下:总结前言        新功能上线时要经常发包到测试或生产服务器进行模块部署...
    99+
    2024-04-02
  • python怎么发送带有附件、正文为HTML的邮件
    这篇“python怎么发送带有附件、正文为HTML的邮件”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“python怎么发送带有附件、正文为HTML的邮件”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥...
    99+
    2023-06-06
  • 如何在 vb.net 中发送带有附件的电子邮件
    在 VB.NET 中,你可以使用 `System.Net.Mail` 命名空间中的 `MailMessage` 类来创建和发送带附件...
    99+
    2023-09-26
    vb.net
  • SpringBoot整合Javamail实现邮件发送的详细过程
    目录序言简单邮件多组件邮件(带附件,图片,超链接的邮件)发送带超链接的邮件发送带图片的邮件总结序言 ​ 发邮件对于咱们的Java来说是一个基本的功能,因此这里SpringBoot整合...
    99+
    2022-11-13
    springboot整合javamail springboot 邮件发送
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作