邮件是信息化时代不可缺少的交流方式之一,那我们如何去实现用自己写的程序发送邮件呢?想必大家都对JavaMail有一定的了解吧,它是sun公司发布的处理email的API可以发送一些生活中常用的邮件。JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。
首先我们介绍如何去实现发一封带有邮件并切包含图片的邮件(基于JavaMail开发出类似于Microsoft Outlook的应用程序,我们要把我们自己写的邮件文件在Outlook中打开)。再介绍之前,我们先去了解一下如何在一封邮件中实现及带有附件又带有图片,并且如何去设置它们的关系:
此图来自-----redarmy_chen
下面是具体实现代码:
package cn.csdn.javamail;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.AddressException;
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;
public class MailImageAndAttch {
/**
* @param args
* @throws MessagingException
* @throws AddressException
* @throws IOException
* @throws FileNotFoundException
*/
public static void main(String[] args) throws AddressException, MessagingException, FileNotFoundException, IOException {
// TODO Auto-generated method stub
//创建邮件
MimeMessage message=new MimeMessage(Session.getInstance(System.getProperties()));
//设置邮件
message.setFrom(new InternetAddress("Longmanfei@qq.com"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("longmanfei@qq.com"));
message.setSubject("复杂邮箱发送");
//设置邮件属性
MimeBodyPart text=new MimeBodyPart();
text.setContent("发送邮件内容<br/><img src='cid:1.jpg'><br/>", "text/html;charset=utf-8");
//设置图片
MimeBodyPart image=new MimeBodyPart();
image.setDataHandler(new DataHandler(new FileDataSource("src\\1.jpg")));
image.setContentID("1.jpg");
//设置图片和正文的关系
MimeMultipart mm=new MimeMultipart();
mm.addBodyPart(text);
mm.addBodyPart(image);
mm.setSubType("related");
//设置附件
MimeBodyPart accth=new MimeBodyPart();
DataHandler dh= new DataHandler(new FileDataSource("src\\大笑.mp3"));
accth.setDataHandler(dh);
String name=dh.getName();
//设置读取附件名称是不出现乱码
accth.setFileName(MimeUtility.encodeText(name));
//设置关系图片和bodypart关系
MimeBodyPart part=new MimeBodyPart();
part.setContent(mm);
//设置关系
MimeMultipart mM= new MimeMultipart();
mM.addBodyPart(part);
mM.addBodyPart(accth);
mM.setSubType("mixed");
//把MIME消息设置到message中
message.setContent(mM);
message.saveChanges();
message.writeTo(new FileOutputStream("d:\\66.eml"));
}
}
下面是以另一种方式实现的简单发送邮件的方法:
package com.sfc.model;
import org.apache.commons.mail.*;
public class SendMail {
public String to;/* 收信人地址 */
public String toName;//收信人姓名
public String subject;/* 主题 */
public String body;
public boolean sMail(String faname,String to,String toName,String subject,String body){
boolean flag=false;
HtmlEmail email=new HtmlEmail();
try {
email.setHostName("smtp.163.com");//设置发信的smtp服务器
email.addTo(to, toName);//设置收件人帐号和收件人
email.setFrom("Longmanfei@163.com",faname);//设置发信的邮件帐号和发信人
email.setSubject(subject);//设置邮件主题
email.setAuthentication("Longmanfei@163.com","123123");//如果smtp服务器需要认证的话,在这里设置帐号、密码
email.setCharset("utf-8");
//System.out.println("发送成功1");
email.setHtmlMsg("<B>您可以将联系方式公布</B><br>"+"<font color='#800000'>"+body+"</font><br>"+"<B><font color='red'>本消息来自58FF同城,有事您说话</font></B>");//设置邮件正文和字符编码
email.send();
flag=true;
} catch (EmailException e) {
//flag=false;
System.out.println("发送失败");
e.printStackTrace();
} return flag;
}
}
这个相对上面那种要简单的多,至于如何发送带附件的邮件,我们可以登录官方网站去产看相应的实现方法。第二中实现方式当不是用java项目运行的时候,而是通过相应的web项目传值,去发送时有课能会报错,那是因为没有导入相应的包,当遇到错误时可以去百度查找并去官网下相应的jar包文件。
- 大小: 36.9 KB
分享到:
相关推荐
4. **Transport**: 负责实际的邮件发送工作,使用SMTP(简单邮件传输协议)或ESMTP(扩展SMTP)协议与邮件服务器通信。 在实现Java邮件发送时,你需要遵循以下步骤: 1. **配置Session**: 创建一个Session对象,...
1. **邮件协议**:首先,你需要了解电子邮件是如何工作的,这通常涉及到SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)。SMTP用于发送邮件,而POP3和IMAP则用于接收邮件。理解这些协议的...
1. **SMTP (简单邮件传输协议)** - **定义**:定义了邮件递送的基本机制。 - **作用**:用于将邮件从发件人的服务器发送到收件人的服务器。 - **特点**:SMTP 服务器不需要支持授权转发,但正确的配置非常重要。 ...
首先,JavaMail API简介部分会讲解JavaMail的基本概念,包括其设计目标、核心组件以及与SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP(因特网消息访问协议)等电子邮件协议的关系。JavaMail API使得...
JavaMail API是Java平台上的一个开源库,它允许开发者通过SMTP(简单邮件传输协议)、POP3(邮局协议)或IMAP(因特网消息访问协议)与邮件服务器交互。这个API包括了创建、发送、接收和处理电子邮件的功能。 在...
首先,JavaMail API的核心在于提供了一种标准的接口,允许开发者与各种邮件服务器进行交互,无论这些服务器遵循的是SMTP(简单邮件传输协议)、POP3(邮局协议)还是IMAP(因特网消息访问协议)。通过JavaMail,...
### ASP.NET 实现自动发送邮件的方法详解 在Web开发中,自动发送邮件是一个常见的功能需求,主要用于用户注册、密码找回、通知提醒等场景。本文将详细介绍如何使用ASP.NET实现自动发送邮件的功能,并通过示例代码...
- **MailSender**:这个接口提供两个方法:`send(SimpleMailMessage simpleMessage)`用于发送单个简单邮件,`send(SimpleMailMessage[] simpleMessages)`用于批量发送简单邮件。如果在发送过程中发生错误,如消息...
### Java 实现简单邮件程序详解 #### 一、概述 在现代互联网应用中,电子邮件仍然是一个非常重要的通信手段。无论是企业内部沟通还是对外营销活动,邮件都扮演着不可或缺的角色。本篇文章将详细介绍如何使用Java...
1. `net/smtp` - 提供了SMTP(简单邮件传输协议)客户端的功能。 2. `net/mail` - 用于处理邮件地址和邮件头。 3. `html/template` - 处理HTML模板的解析和执行。 ### 登录Gmail 使用`net/smtp`包的`PlainAuth`...
例如,设计一个简单的Web邮件系统,包括用户注册、登录、发送邮件、接收邮件等功能,并结合实际需求,探讨如何更好地集成JavaMail API,提高系统的稳定性和用户体验。 #### 八、总结与展望 基于JavaMail的Web邮件...
JMail提供了高级的电子邮件处理功能,包括SMTP(简单邮件传输协议)和POP3(邮局协议版本3)的支持,简化了邮件的发送和接收过程。 #### 四、电子邮件传输协议 电子邮件系统的运行依赖于几种关键的传输协议: 1. ...
### PHP 发送电子邮件详解 #### 一、PHP发送电子邮件的基础 在PHP中,发送电子邮件是一项基本功能,可以使用内置的`mail()`函数实现。...在选择邮件发送方法时,请考虑你的具体需求以及服务器的配置情况。
这个库不仅支持SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议),还提供了丰富的功能,如MIME(多用途互联网邮件扩展)消息、SSL/TLS安全连接、HTML邮件、附件、以及邮件会话管理等。...
在本篇文章中,我们将探讨如何使用 C# 编程语言结合 SMTP(简单邮件传输协议)来发送电子邮件。此外,还将介绍如何向多人发送邮件、添加抄送人以及如何附加文件作为邮件附件。 #### 一、引言 在日常开发工作中,...