JavaMail官网:http://www.oracle.com/technetwork/java/javamail/index.html
以下是一个简单的发送邮件例子:
package com.mail;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
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;
public class Test {
//注意免费的邮箱不能外部程序发送邮件
private static String smtpHost = "smtp.163.com";
private static String sender = "xjd@163.com";
private static String senderName = "xjd";
private static String senderPassword = "保密";
private static String receiver = "xjd@google.com";
private static String filePath = "D:/test.txt";//用于测试附件的文件
public static void main(String[] args) throws MessagingException {
Properties props = System.getProperties();
//设置代理,没试过,大体有以下几种设置方式
// props.put("http.proxyHost", "10.1.2.188");
// props.put("http.proxyPort", "80");
// props.put("proxySet", "true");
// props.put("socksProxySet", "true");
// props.put("socksProxyHost", "10.1.2.188");
// props.put("socksProxyPort", "80");
//设置系统属性(发送服务器): mail.smtp.host
props.put("mail.smtp.host", smtpHost);
//设置系统属性(身份认证): mail.smtp.auth
props.put("mail.smtp.auth", "true");
//准备邮件会话对象session
Session session = Session.getDefaultInstance(props);
//创建Message对象用于管理要发送的消息
Message msg = new MimeMessage(session);
//设置发件人
msg.setFrom(new InternetAddress(sender));
//设置收件人
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(receiver));
//设置主题
msg.setSubject("This is subject");
//创建一个消息对象
MimeMultipart multiMsg = new MimeMultipart();//支持HTML形式的Msg类型
//创建这个消息的body对象
BodyPart body = new MimeBodyPart();
body.setContent(
"<meta http-equiv='Content-Type' content='text/html; charset=gb2312'/>" +
"<h3>This is mail body</h3>",
"text/html; charset=gb2312");//把页面内容设置进去
multiMsg.addBodyPart(body);//把body对象加入到消息对象中
//再创建一个消息对象用于添加附件
BodyPart bodyFile = new MimeBodyPart();
FileDataSource fileSource = new FileDataSource(filePath);
bodyFile.setDataHandler(new DataHandler(fileSource));
bodyFile.setFileName(fileSource.getName());
multiMsg.addBodyPart(bodyFile);//把附件对象加入到消息对象中
msg.setContent(multiMsg);//把消息对象放到消息中
msg.saveChanges();
//开始发送邮件
//构建smtp类型的发送器对象
Transport transport = session.getTransport("smtp");
//连接
transport.connect(props.getProperty("mail.smtp.host"), senderName, senderPassword);
//发送
transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO));
transport.close();
System.out.println("Complete!");
}
}
邮件发送HTML正文中文乱码解决办法:
对于HTML内容加入方式加入,加入时指定编码格式即可
BodyPart bp = new BodyPart();
//第一种方式,直接加入HTML格式的字符串
bp.setContent(htmlString, "text/html; charset=utf-8");
//第二种方式,加入HTML文件
bp.setDataHandler(new DataHandler(new FileDataSource(htmlFile)));
//加入编码方式解决乱码
bp.setHeader("Content-Type", "text/html; charset=utf-8");
//加入传输编码,在网上搜到一些种方法,但我测试的时侯不用也能解决乱码,保险起见吧
bp.setHeader("Content-Transfer-Encoding", "Base64");
邮件发送时间的设置,因为大部分人的邮件排序都是以时间排序的,有的人(特别是发广告)想把邮件的发送时间设置在以后,从而可以让邮件一直排在前面,然而这种时间设置对于一些专业邮箱是会被拒收的,如163就是这样。
邮件发送含图片(或其它如JS,CSS文件等)的HTML的处理办法。
一般有两种办法:
1. 把这些要链接到的文件放到服务器上,链接处填上url。
本文章仅供以后参考。
分享到:
相关推荐
在你提供的压缩包文件中,包含了三个关键元素:activation.jar、mail.jar以及SendMail.java,这些都是Java Mail发邮件所需的基本组件。 `activation.jar` 是JavaBeans Activation Framework (JAF) 的一部分,它是...
Java Mail 发送邮件及邮件附件 Java Mail 是一个广泛使用的 Java 库,用于发送电子邮件。以下是 Java Mail 发送邮件及邮件附件的知识点。 Java Mail 简介 Java Mail 是一个 Java 库,提供了发送电子邮件的功能。...
Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和管理邮件。在Java应用程序中,我们通常使用JavaMail API来实现邮件的自动化操作,比如发送带有附件的邮件、群发邮件等。下面将...
Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和操作邮件。这个API提供了广泛的协议支持,包括SMTP(简单邮件传输协议)用于发送邮件,POP3和IMAP4用于接收邮件。在Java Mail中,...
利用Java mail发送邮件,用到的一些类,一些方法,写的很简陋
要使用Java Mail发送邮件,首先需要添加相应的依赖库到项目中。对于Android项目,通常会通过Gradle来引入。 1. 添加依赖: 在项目的build.gradle文件中,添加以下依赖: ```groovy dependencies { ...
下面我们将详细探讨Java Mail发送邮件脚本的核心知识点,以及在实际操作中可能需要的Jar包。 1. **JavaMail API**:JavaMail API是Java中处理电子邮件的标准库,由JavaMail项目维护。它提供了一系列接口和类,包括`...
JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送、接收和其他相关任务。它提供了对各种邮件协议(如 SMTP、POP3 和 IMAP)的支持,并且可以与 MIME 格式的邮件内容配合使用,允许发送包含附件、HTML 内容等...
这个“java mail 发邮件 demo程序”是为了演示如何使用JavaMail API发送电子邮件而创建的一个简单示例。在这个DEMO程序中,我们将深入探讨JavaMail API的核心概念以及如何构建一个实际的邮件发送功能。 首先,...
这个标题“Java mail发送邮件(源代码带注释)”表明我们将讨论如何使用JavaMail API来实现电子邮件的发送功能。描述提到,通过简单的赋值和测试,我们可以快速实现邮件发送,这表明提供的源代码应该是一个易于理解且...
Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和管理邮件。这个源码可能包含了一套完整的解决方案,可以与多种邮局(如Gmail, Yahoo, Hotmail等)进行交互,并且支持单个收件人和...
Java Mail 是一个强大的开源API,用于处理电子邮件的发送和接收。这个API允许开发者在Java应用程序中集成邮件功能,包括SMTP(简单邮件传输协议)和POP3(邮局协议第三版)等邮件服务协议。本教程将详细介绍如何使用...
以下是一个简单的Java Mail发送邮件的示例代码: ```java import javax.mail.*; import javax.mail.internet.*; public class EmailSender { public static void main(String[] args) throws Exception { // ...
要使用Java Mail发送QQ邮件,首先需要在QQ邮箱设置中开启“POP3/SMTP/IMAP”服务,并获取授权码。授权码是QQ邮箱为第三方应用提供的一种安全验证方式,不同于普通密码。 ### 3. 添加依赖 在Java项目中,我们需要...
Java Mail邮件发送是Java开发中常见的一项功能,用于在应用程序中发送电子邮件。Java Mail API提供了一个标准的接口,使得开发者可以方便地实现SMTP(简单邮件传输协议)和其他邮件协议的功能。下面将详细介绍Java ...
下面是一个简化的Java Mail发送邮件的步骤,展示了一些关键API的使用: 1. 引入Java Mail依赖:首先确保项目中包含了Java Mail的相关库,通常通过Maven或Gradle等构建工具添加依赖。 2. 创建Properties对象:设置...