`
sunxboy
  • 浏览: 2868986 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

发送带图片邮件例子

SUN 
阅读更多
package com.cellcom;

import java.io.BufferedReader;
import java.io.IOException;
import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.SendFailedException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import com.sun.mail.smtp.SMTPAddressFailedException;
import com.sun.mail.smtp.SMTPAddressSucceededException;
import com.sun.mail.smtp.SMTPSendFailedException;
import com.sun.mail.smtp.SMTPTransport;

public class smtpsend {


    public static void main(String[] argv) {
	String   from = "name@example.com", url = null;
	String mailhost = "smtp.example.com";
	String mailer = "smtpsend";
	String protocol = null, host = "smtp.example.com", user = "name", password = "psd";
	String record = null;	// name of folder in which to record mail
	boolean debug = false;
	boolean verbose = false;
	boolean auth = true;
	String prot = "smtp";

	try {

	    Properties props = System.getProperties();
	    if (mailhost != null)
		props.put("mail." + prot + ".host", mailhost);
	    if (auth)
		props.put("mail." + prot + ".auth", "true");

	    Session session = Session.getInstance(props, null);
	    if (debug)
		session.setDebug(true);

	    Message msg = new MimeMessage(session);
	    if (from != null)
		msg.setFrom(new InternetAddress(from));
	    else
		msg.setFrom();

	    msg.setRecipients(Message.RecipientType.TO,
					InternetAddress.parse("name@example.com", false));

	    msg.setSubject("dd");
	    MimeMultipart multipart = new MimeMultipart("related");

        BodyPart messageBodyPart = new MimeBodyPart();
        String htmlText = "<H1>Hello</H1><img src=\"cid:image\">ddddddd";
        String htmlText1 = "<H1>Hello</H1><img src=\"cid:image1\">ddddddd";
        messageBodyPart.setContent(htmlText + htmlText1, "text/html");

        multipart.addBodyPart(messageBodyPart);
        
        messageBodyPart = new MimeBodyPart();
        DataSource fds = new FileDataSource
          ("E:\\aa\\bb\\icons\\incomingLinksNavigatorGroup.gif");
        messageBodyPart.setDataHandler(new DataHandler(fds));
        messageBodyPart.setHeader("Content-ID","<image>");
        multipart.addBodyPart(messageBodyPart);
        messageBodyPart = new MimeBodyPart();
        fds = new FileDataSource
          ("E:\\aa\\bb\\icons\\incomingLinksNavigatorGroup.gif");
        messageBodyPart.setDataHandler(new DataHandler(fds));
        messageBodyPart.setHeader("Content-ID","<image1>");

        // add it
        multipart.addBodyPart(messageBodyPart);
        
        
		msg.setContent(multipart);
	    SMTPTransport t =
		(SMTPTransport)session.getTransport(prot);
	    try {
		if (auth)
		    t.connect(mailhost, user, password);
		else
		    t.connect();
		t.sendMessage(msg, msg.getAllRecipients());
	    } finally {
		if (verbose)
		    System.out.println("Response: " +
						t.getLastServerResponse());
		t.close();
	    }

	    System.out.println("\nMail was sent successfully.");

	    if (record != null) {
		// Get a Store object
		Store store = null;
		if (url != null) {
		    URLName urln = new URLName(url);
		    store = session.getStore(urln);
		    store.connect();
		} else {
		    if (protocol != null)		
			store = session.getStore(protocol);
		    else
			store = session.getStore();

		    // Connect
		    if (host != null || user != null || password != null)
			store.connect(host, user, password);
		    else
			store.connect();
		}
		Folder folder = store.getFolder(record);
		if (folder == null) {
		    System.err.println("Can't get record folder.");
		    System.exit(1);
		}
		if (!folder.exists())
		    folder.create(Folder.HOLDS_MESSAGES);

		Message[] msgs = new Message[1];
		msgs[0] = msg;
		folder.appendMessages(msgs);

		System.out.println("Mail was recorded successfully.");
	    }

	} catch (Exception e) {
	    if (e instanceof SendFailedException) {
		MessagingException sfe = (MessagingException)e;
		if (sfe instanceof SMTPSendFailedException) {
		    SMTPSendFailedException ssfe =
				    (SMTPSendFailedException)sfe;
		    System.out.println("SMTP SEND FAILED:");
		    if (verbose)
			System.out.println(ssfe.toString());
		    System.out.println("  Command: " + ssfe.getCommand());
		    System.out.println("  RetCode: " + ssfe.getReturnCode());
		    System.out.println("  Response: " + ssfe.getMessage());
		} else {
		    if (verbose)
			System.out.println("Send failed: " + sfe.toString());
		}
		Exception ne;
		while ((ne = sfe.getNextException()) != null &&
			ne instanceof MessagingException) {
		    sfe = (MessagingException)ne;
		    if (sfe instanceof SMTPAddressFailedException) {
			SMTPAddressFailedException ssfe =
					(SMTPAddressFailedException)sfe;
			System.out.println("ADDRESS FAILED:");
			if (verbose)
			    System.out.println(ssfe.toString());
			System.out.println("  Address: " + ssfe.getAddress());
			System.out.println("  Command: " + ssfe.getCommand());
			System.out.println("  RetCode: " + ssfe.getReturnCode());
			System.out.println("  Response: " + ssfe.getMessage());
		    } else if (sfe instanceof SMTPAddressSucceededException) {
			System.out.println("ADDRESS SUCCEEDED:");
			SMTPAddressSucceededException ssfe =
					(SMTPAddressSucceededException)sfe;
			if (verbose)
			    System.out.println(ssfe.toString());
			System.out.println("  Address: " + ssfe.getAddress());
			System.out.println("  Command: " + ssfe.getCommand());
			System.out.println("  RetCode: " + ssfe.getReturnCode());
			System.out.println("  Response: " + ssfe.getMessage());
		    }
		}
	    } else {
		System.out.println("Got Exception: " + e);
		if (verbose)
		    e.printStackTrace();
	    }
	}
    }

    public static String collect(BufferedReader in) throws IOException {
	String line;
	StringBuffer sb = new StringBuffer();
	while ((line = in.readLine()) != null) {
	    sb.append(line);
	    sb.append("\n");
	}
	return sb.toString();
    }
}
 
分享到:
评论

相关推荐

    java 发邮件例子

    在Java编程语言中,发送电子邮件是一项常见的任务,尤其在自动化通知、系统消息传递或用户注册验证等场景下。本教程将详细介绍如何使用`commons-email-1.1`库结合Java来实现邮件发送功能。 `commons-email`是Apache...

    bcb 发邮件 例子

    【标题】"bcb 发邮件 例子"是一个关于使用Borland C++ Builder(简称bcb)编程环境发送电子邮件的示例项目。这个项目旨在帮助开发者了解如何在Borland C++ Builder中集成邮件发送功能。 【描述】"发邮件的小例子,...

    VC++通过QQ邮箱发送邮件例子

    在VC++环境中,通过QQ邮箱发送邮件涉及到的主要知识点包括SMTP(Simple Mail Transfer Protocol)协议、MIME(Multipurpose Internet Mail Extensions)编码以及QQ邮箱的SMTP服务器设置。下面将详细讲解这些概念及其...

    python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】

    以下将详细讲解如何使用Python实现发送普通邮件、带附件以及带图片邮件。 ### 1. 发送普通TXT邮件 发送普通TXT邮件的核心在于使用`email.mime.text.MIMEText`类来创建邮件内容。首先,导入必要的模块,然后定义...

    java邮件发送Demo(完整例子)

    java邮件发送Demo(完整例子):下面是我的测试方法: public static void demo(){ Mail mail=new Mail(); mail.setSmtpHost("smtp.163.com");/** 设置SMTP **/ String mailFrom="wangxin_admin@163.com"; ...

    spring整合freemarker发送邮件例子

    这个服务能够发送HTML格式的邮件,其中包含内嵌的图片,并且能够处理附件,同时解决字符编码可能导致的乱码问题。以下是详细的知识点讲解: 1. **Spring Framework**:Spring 是一个广泛使用的 Java 应用开发框架,...

    C++Builder2010发邮件例子

    这个例子应该包含了创建邮件对象、配置SMTP组件、发送邮件等步骤的详细实现,是学习C++Builder邮件发送功能的好材料。通过阅读和理解这个示例,你可以掌握使用C++Builder和Indy库进行邮件通信的基本技巧。

    邮件发送小例子

    `HtmlEmail`是一个专门用于创建和发送带有HTML内容的邮件的工具,它简化了邮件编程的复杂性,让我们能够更加便捷地发送具有丰富格式的邮件。 首先,我们需要了解`HtmlEmail`类的来源。在Java开发中,`HtmlEmail`...

    VC,完整的电子邮件客户端例子,收发邮件例子,用到POP3和SMTP

    在VC的例子中,你可以找到关于建立SMTP连接、设置发件人和收件人信息、添加邮件主题和正文、以及发送邮件的实现细节。这对于构建一个能发送邮件的应用来说是必不可少的。 在压缩包中的“收发送电子邮件.POP3,SMTP”...

    java javamail 发送邮件 源代码 例子

    Java/javamail发送邮件是Java开发中常见的任务之一,它涉及到网络通信和电子邮件协议的知识。在Java中,JavaMail API提供了发送和接收电子邮件的功能。这个API遵循了JavaBeans Activation Framework (JAF) 和 ...

    java发邮件需要的jar和一个发邮件的例子,适用于jdk1.5

    JAF提供了一种标准的方式来识别和操作Java对象,这对于处理MIME(多用途互联网邮件扩展)类型的邮件非常重要,因为邮件可能包含各种不同类型的数据,如文本、图片、音频或视频。 在提供的`MailExample.java`示例中...

    邮件发送实例代码(CS版及Web版带附件发送)

    本文将详细讲解如何使用C#(CS版)和Web版代码实现带附件的邮件发送功能,这对于开发者来说是必备技能之一。 首先,我们来看C#版本的邮件发送实例。C#提供了System.Net.Mail命名空间,其中的SmtpClient和...

    QQ邮箱发送邮件的例子

    - **邮件过滤与管理**:QQ邮箱提供了邮件过滤规则,用户可以根据发件人、主题等条件自动分类邮件。还有垃圾邮件过滤功能,帮助用户筛选出非重要邮件。 通过以上讲解,你应该对使用QQ邮箱发送邮件有了全面的理解。...

    JavaMail发送和接受邮件的一个小例子

    JavaMail是Java编程语言中用于处理电子邮件的API,它提供了丰富的功能,包括发送、接收邮件以及处理复杂的邮件格式,如文本、图片和附件。在这个小例子中,我们将深入探讨如何利用JavaMail API来实现这些功能。 ...

    发送邮件源码_发送邮件源码_邮件_

    4. **发送邮件**:调用`smtp.sendmail()`方法发送邮件,传递发件人、收件人列表以及邮件对象的字符串表示。 5. **关闭连接**:发送完毕后,使用`smtp.quit()`关闭连接。 以Python为例,一个简单的发送邮件源码可能...

Global site tag (gtag.js) - Google Analytics