`
Longmanfei
  • 浏览: 48112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

详解简易邮件实现方法

阅读更多

邮件是信息化时代不可缺少的交流方式之一,那我们如何去实现用自己写的程序发送邮件呢?想必大家都对JavaMail有一定的了解吧,它是sun公司发布的处理emailAPI可以发送一些生活中常用的邮件。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
1
1
分享到:
评论

相关推荐

    张孝祥Java邮件开发详解

    4. **Transport**: 负责实际的邮件发送工作,使用SMTP(简单邮件传输协议)或ESMTP(扩展SMTP)协议与邮件服务器通信。 在实现Java邮件发送时,你需要遵循以下步骤: 1. **配置Session**: 创建一个Session对象,...

    张孝祥Java邮件开发详解110M

    1. **邮件协议**:首先,你需要了解电子邮件是如何工作的,这通常涉及到SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议)。SMTP用于发送邮件,而POP3和IMAP则用于接收邮件。理解这些协议的...

    JavaMail邮件开发详解

    1. **SMTP (简单邮件传输协议)** - **定义**:定义了邮件递送的基本机制。 - **作用**:用于将邮件从发件人的服务器发送到收件人的服务器。 - **特点**:SMTP 服务器不需要支持授权转发,但正确的配置非常重要。 ...

    JavaMail(JAVA邮件服务器)API详解 chm.rar

    首先,JavaMail API简介部分会讲解JavaMail的基本概念,包括其设计目标、核心组件以及与SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP(因特网消息访问协议)等电子邮件协议的关系。JavaMail API使得...

    《Java邮件开发详解》源代码

    JavaMail API是Java平台上的一个开源库,它允许开发者通过SMTP(简单邮件传输协议)、POP3(邮局协议)或IMAP(因特网消息访问协议)与邮件服务器交互。这个API包括了创建、发送、接收和处理电子邮件的功能。 在...

    JavaMail(JAVA邮件服务) API详解

    首先,JavaMail API的核心在于提供了一种标准的接口,允许开发者与各种邮件服务器进行交互,无论这些服务器遵循的是SMTP(简单邮件传输协议)、POP3(邮局协议)还是IMAP(因特网消息访问协议)。通过JavaMail,...

    Asp.net实现自动发送邮件的方法

    ### ASP.NET 实现自动发送邮件的方法详解 在Web开发中,自动发送邮件是一个常见的功能需求,主要用于用户注册、密码找回、通知提醒等场景。本文将详细介绍如何使用ASP.NET实现自动发送邮件的功能,并通过示例代码...

    spring邮件抽象层详解

    - **MailSender**:这个接口提供两个方法:`send(SimpleMailMessage simpleMessage)`用于发送单个简单邮件,`send(SimpleMailMessage[] simpleMessages)`用于批量发送简单邮件。如果在发送过程中发生错误,如消息...

    java实现简单邮件程序

    ### Java 实现简单邮件程序详解 #### 一、概述 在现代互联网应用中,电子邮件仍然是一个非常重要的通信手段。无论是企业内部沟通还是对外营销活动,邮件都扮演着不可或缺的角色。本篇文章将详细介绍如何使用Java...

    Golang利用自定义模板发送邮件的方法详解

    1. `net/smtp` - 提供了SMTP(简单邮件传输协议)客户端的功能。 2. `net/mail` - 用于处理邮件地址和邮件头。 3. `html/template` - 处理HTML模板的解析和执行。 ### 登录Gmail 使用`net/smtp`包的`PlainAuth`...

    基于JaVaMail的Web邮件客户端的设计与实现

    例如,设计一个简单的Web邮件系统,包括用户注册、登录、发送邮件、接收邮件等功能,并结合实际需求,探讨如何更好地集成JavaMail API,提高系统的稳定性和用户体验。 #### 八、总结与展望 基于JavaMail的Web邮件...

    简单电子邮件客户端

    JMail提供了高级的电子邮件处理功能,包括SMTP(简单邮件传输协议)和POP3(邮局协议版本3)的支持,简化了邮件的发送和接收过程。 #### 四、电子邮件传输协议 电子邮件系统的运行依赖于几种关键的传输协议: 1. ...

    PHP 发送电子邮件详解.md

    ### PHP 发送电子邮件详解 #### 一、PHP发送电子邮件的基础 在PHP中,发送电子邮件是一项基本功能,可以使用内置的`mail()`函数实现。...在选择邮件发送方法时,请考虑你的具体需求以及服务器的配置情况。

    javaMail详解

    这个库不仅支持SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息访问协议),还提供了丰富的功能,如MIME(多用途互联网邮件扩展)消息、SSL/TLS安全连接、HTML邮件、附件、以及邮件会话管理等。...

    c#实现SMTP发送邮件功能

    在本篇文章中,我们将探讨如何使用 C# 编程语言结合 SMTP(简单邮件传输协议)来发送电子邮件。此外,还将介绍如何向多人发送邮件、添加抄送人以及如何附加文件作为邮件附件。 #### 一、引言 在日常开发工作中,...

Global site tag (gtag.js) - Google Analytics