package com.dg.xxg.util;
import java.util.Date;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Vector;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
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 SmUtil {
// private static Logger logger = Logger.getLogger(ThingAction.class);
public static InternetAddress fromAddress;
public static Session sendMailSession;
public SmUtil() {
}
public PAuthenticator getPopAuthen(){
PAuthenticator popA = new PAuthenticator();//邮件安全认证。
popA.performCheck("*******", "*********"); // 填写用户名(去掉@以及后面的)及密码
return popA;
}
//send method
public void SendMailContent(String title,String[] email,String fname,String name,String units,String phone,String mail) {
try {
Properties props = new Properties();
Transport transport;
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.126.com"); //smtp主机名
props.put("mail.smtp.connectiontimeout", "10000");
//props.put("mail.smtp.timeout", "10000");
PAuthenticator popA = getPopAuthen();
sendMailSession = Session.getInstance(props, popA);
Message newMessage = new MimeMessage(sendMailSession);
if(fromAddress==null){
try {
fromAddress = new InternetAddress("anyaxiao100@126.com");
} catch (Exception e) {
fromAddress = new InternetAddress("anyaxiao100@126.com");
}
}
newMessage.setFrom(fromAddress);
newMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(email[0])); // 接收方邮件地址
for(int i=1;i<email.length;i++){
newMessage.addRecipient(Message.RecipientType.TO,new InternetAddress(email[i]);
}
newMessage.setSubject(title);
newMessage.setSentDate(new Date());
//后面的BodyPart将加入到此处创建的Multipart中
Multipart mp = new MimeMultipart();
//用于保存发送附件的文件名的集合
Vector file = new Vector();
file.addElement(fname);
//利用枚举器方便的遍历集合
Enumeration efile=file.elements();
//检查序列中是否还有更多的对象
while(efile.hasMoreElements()){
MimeBodyPart mbp=new MimeBodyPart();
String filename="";
//选择出每一个附件名
filename=efile.nextElement().toString();
//得到数据源
FileDataSource fds=new FileDataSource(filename);
//得到附件本身并至入BodyPart
mbp.setDataHandler(new DataHandler(fds));
//解决附件中带有中文名字问题
BASE64Encoder enc = new BASE64Encoder();
mbp.setFileName("=?GBK?B?"+enc.encode(fds.getName().getBytes())+"?=");
//邮件内容部分
MimeBodyPart part=new MimeBodyPart();
String content="作者姓名:"+name+"<p> 所属单位./科室:"+units+"<p>联系电话:"+phone+"<p>电子邮箱:"+mail+"<p>";
part.setContent(content, "text/html;charset=utf-8");
//得到文件名同样至入BodyPart
mp.addBodyPart(mbp);
mp.addBodyPart(part);
//移走集合中的所有元素
file.removeAllElements();
//Multipart加入到信件
newMessage.setContent(mp);//添加文本至邮件中
newMessage.saveChanges();//保存修改
}
transport = sendMailSession.getTransport("smtp");
transport.send(newMessage);
transport.close();
//System.out.println("成功!");
} catch (MessagingException ex) {
//System.out.println("失败!");
ex.printStackTrace();
}
}
public class PAuthenticator extends Authenticator {
String username = null;
String password = null;
public PAuthenticator() {
}
public PasswordAuthentication performCheck(String user, String pass) {
username = user;
password = pass;
return getPasswordAuthentication();
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
public static void main(String[] args) {
SmUtil sml = new SmUtil();
String title="会议征文";
String[] email={"sun@yahoo.cn",asdffg@126.com};
String filepath="d:/新建文件夹/文档.doc";
String name="姓名";
String units="河北医大";
String phone="0311-84512364";
String mail="sdff@126.com";
sml.SendMailContent(title,email,filepath,name,units,phone,mail);
}
}
分享到:
相关推荐
在IT行业中,电子邮件是...总的来说,JMail组件提供了强大且灵活的邮件处理能力,无论是发送带有附件的邮件,还是从邮箱中下载附件,都可以轻松实现。理解并掌握上述步骤,你就能在Java项目中自如地处理邮件通信了。
VFP利用JMAIL发送邮件及附件,纯代码,效果好VFP利用JMAIL发送邮件及附件,纯代码,效果好
在VC++ 6.0开发环境中,通过使用第三方库如JMail,我们可以实现发送带有附件的电子邮件功能。JMail是一个ActiveX控件,由Jasc Software公司开发,它提供了丰富的邮件处理功能,包括发送、接收邮件,以及添加附件等。...
2、程序使用jmail组件进行邮件的发送,支持发送附件。 3、发送者邮箱必须开通smtp服务,使用网页登录发送者邮箱进行设置,不同的邮箱服务提供商开启方法不一样,详情百度。 4、本程序可以根据设定的收件人邮箱规则...
本文将深入探讨如何使用VB(Visual Basic)编程语言和Jmail组件来实现从邮件服务器读取邮件以及查看邮件附件的功能。 首先,Jmail是一款强大的邮件处理组件,它允许开发者在Windows应用程序中集成发送、接收邮件及...
根据提供的文件信息,我们可以分析出该程序为一个Java编写的简单电子邮件发送系统——JMAIL,其主要功能包括发送带有附件的电子邮件。接下来我们将对这段代码进行详细的解析,并从中提炼出关键知识点。 ### 1. Java...
3. **处理邮件附件**: - `mailMessage.Attachments`集合包含邮件中的所有附件。 - `Attachments.Add()`方法可将附件信息添加到邮件对象中。 4. **下载邮件**: - `mailMessage.DownloadMessage()`方法下载邮件...
**基于Jmail的邮件收发系统** 在IT领域,电子邮件通信是不可或缺的一部分,尤其是在企业级应用中。...通过理解和运用Jmail的特性,我们可以构建稳定、安全且易于维护的邮件系统,满足各种业务需求。
标题中的“用jmail制作的邮件接受程序,能下载附件.zip”...开发者可以通过阅读源代码,理解邮件收发过程的实现细节,以及如何处理邮件附件,这对于构建自己的邮件系统或增强现有系统处理邮件能力具有实践指导意义。
如果你需要处理更复杂的邮件格式,如HTML内容或附件,JMail库提供了更多的API接口来处理这些情况。 总结起来,使用JMail在VC++中接收邮件涉及了JMail库的集成、邮件服务器配置、连接、获取邮件信息以及断开连接等...
### 使用Jmail发送与接收邮件的关键技术点 #### 发送邮件 在提供的代码片段中,主要涉及了如何使用Jmail库来实现邮件的发送功能。Jmail是一个强大的.NET类库,用于开发支持SMTP、POP3协议的应用程序。下面将详细...
JMail是一款用于在Java环境中...总的来说,JMail是一个强大且灵活的邮件发送工具,适用于各种Java应用程序。通过理解和利用其提供的功能,开发者可以轻松实现邮件发送、管理和跟踪,从而提升用户体验并提高工作效率。
标题中的“jmail接收邮件,通过网页浏览邮箱的邮件”涉及到的是使用JMail组件在Web应用程序中实现邮件的接收和查看功能。JMail是一款由AspDotNetStorefront开发的.NET组件,它允许开发者在ASP.NET环境中发送和接收...
对于使用Visual Basic(VB)进行编程的开发者来说,利用第三方组件如jmail来发送邮件是一种高效且简便的方法。本文将深入解析如何使用jmail在VB环境中发送邮件,包括必要的环境配置、代码示例及其详细解释。 ### ...
JMail是一个流行的.NET组件,它提供了全面的邮件操作功能,如发送、接收、管理邮件以及处理邮件附件。 首先,我们需要理解C#中的邮件接收基础。在C#中,我们可以使用`System.Net.Mail`命名空间中的`SmtpClient`和`...
1. **邮件发送**:Jmail支持通过SMTP服务器发送邮件,可以设置多个发件人地址,支持HTML格式的邮件内容,还可以添加附件。 2. **邮件接收**:利用POP3协议,Jmail可以连接到邮件服务器并下载新邮件,支持设置不同的...
开发者可以设置发件人、收件人、抄送人、密送人、邮件主题和正文内容,同时支持添加附件。源码中可能包含了如何构建并发送邮件的示例,这对于初学者理解和实践邮件发送非常有帮助。 2. **接收邮件**:Jmail也支持...
JMail是一款功能强大的ASP邮件组件,它简化了电子邮件的发送过程,使得开发者能够通过简单的代码实现复杂的邮件发送任务,如HTML格式邮件、附件添加、邮件队列管理等。JMail支持多种邮件服务器协议,如SMTP、POP3、...
尽管使用Jmail通过JavaScript在网页中发送带有附件的邮件在特定环境下仍然可行,但由于其兼容性和安全性问题,这种方法并不推荐用于现代Web应用。对于需要跨平台、高安全性的邮件发送需求,更建议采用邮件API服务或...
总结起来,通过VC++和Jmail组件,我们可以创建一个能够发送带附件的邮件的应用程序,并且支持SMTP服务器的密码认证。这个过程涉及到了邮件对象的创建、属性设置、附件添加以及网络通信的基本原理。理解并熟练掌握...