首先加入jar包javax.mail.jar

package com.tideway.javamail;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties; import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
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 SendMail {
//收件人地址
private String to;
//发件人地址
private String from;
//SMTP服务器地址
private String smtpServer;
//登录副武器的用户名
private String username;
//登陆服务器的密码
private String password;
//邮件主题
private String subject;
//邮件正文
private String content;
//记录所有附件文件的集合,本人没写附件
List<String> list=new ArrayList<String>(); public SendMail(){} /**
* 初始化各属性构造器
* @param to 收件人地址
* @param from 发件人地址
* @param smtpServer SMTP服务器地址
* @param username 服务器登录用户名
* @param password 密码
* @param subject 标题
* @param content 内容
*/
public SendMail(String to,String from,String smtpServer,String username,
String password,String subject,String content){
this.to=to;
this.from=from;
this.smtpServer=smtpServer;
this.username=username;
this.password=password;
this.subject=subject;
this.content=content;
} public void setTo(String to) {
this.to = to;
} public void setFrom(String from) {
this.from = from;
} public void setSmtpServer(String smtpServer) {
this.smtpServer = smtpServer;
} public void setUsername(String username) {
this.username = username;
} public void setPassword(String password) {
this.password = password;
}
public void setSubject(String subject) {
this.subject = subject;
} public void setContent(String content) {
this.content = content;
}
//将附件文件名添加到List集合
public void attachfile(String filename){ list.add(filename);
} public boolean send(){
//创建Session需要的Properties对象
Properties pro=new Properties();
pro.put("mail.smtp.host", smtpServer);
pro.put("mail.smtp.auth", "true");
//创建Session对象
Session session=Session.getDefaultInstance(pro,new Authenticator() {
public javax.mail.PasswordAuthentication getPasswordAuthentication(){
return new javax.mail.PasswordAuthentication(username, password); }
});
try {
//构造MimeMessage并设置相关属性
MimeMessage msg=new MimeMessage(session);
//设置发件人地址
msg.setFrom(new InternetAddress(from));
//设置收件人
InternetAddress[] address={new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
//设置邮件主题
msg.setSubject(subject);
//构造Multipart
Multipart mp=new MimeMultipart();
//向mp添加正文
MimeBodyPart mbpContent=new MimeBodyPart();
mbpContent.setText(content);
//将MimeBodyPart添加到Multipart容器中
mp.addBodyPart(mbpContent);
//附件附件附件附
//没写附件 //添加
msg.setContent(mp);
//设置发送时间
msg.setSentDate(new Date());
//发送
Transport.send(msg); } catch (MessagingException e) {
// TODO: handle exception
e.printStackTrace();
return false;
}
return true;
}
public static void main(String[] args) {
SendMail sendmail=new SendMail();
sendmail.setSmtpServer("smtp.163.com");
//设置登录服务器用户名
sendmail.setUsername("xxxxxxx");
//163邮箱开授权码的写授权码,没开的写邮箱密码
sendmail.setPassword("自己163邮箱授权码");
//给谁发
sendmail.setTo("xxxx@qq.com"); sendmail.setFrom("xxxxxxx@163.com"); sendmail.setSubject("你是一个不讲诚信的人"); sendmail.setContent("我的海底捞,我的海底捞,我的海底捞。"); if (sendmail.send()) {
System.out.println("success!");
}
}
}

注意:上面程序中创建的Session实例,使用了Autherenticator的匿名内部类,通过该类完成了SMTP的认证,少数邮件服务器在使用SMTP服务时不需要安全认证,则直接如下书写即可。

//创建Session需要的Properties对象
Properties pro=new Properties();
pro.put("mail.smtp.host", smtpServer);
pro.put("mail.smtp.auth", "false");//改成false.................
//创建Session对象
Session session=Session.getDefaultInstance(pro);

JavaMail发送邮件的小程序的更多相关文章

  1. 替换excel模板中的内容并使用JavaMail发送邮件

    由于在公司工作,常年出差,每天都要以日报的形式向公司汇报当天的工作内容.而日报的内容大体上就只有当天工作的主要内容时变化的,其余的都是不变 的. 而我的电脑刚打开excel有点卡,因此决定使用Java ...

  2. JavaMail发送邮件

    发送邮件包含的内容有: from字段  --用于指明发件人 to字段      --用于指明收件人 subject字段  --用于说明邮件主题 cc字段     -- 抄送,将邮件发送给收件人的同时抄 ...

  3. web应用中使用JavaMail发送邮件

    现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能 ...

  4. JavaMail发送邮件的笔记及Demo

    最近碰到一个需求,就是注册用户时候需要向用户发送激活邮箱,于是照着网上搜来的demo自己试着运行了一下,发件时我用的是网易163邮箱,收件时用QQ邮箱,运行后报了一个错误: 网络上搜索解决方式,多次尝 ...

  5. web应用中使用JavaMail发送邮件 。。转载

    现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能 ...

  6. (转载)JavaWeb学习总结(五十三)——Web应用中使用JavaMail发送邮件

    博客源地址:http://www.cnblogs.com/xdp-gacl/p/4220190.html 现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件 ...

  7. JavaWeb学习总结(五十三)——Web应用中使用JavaMail发送邮件

    现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能 ...

  8. javamail发送邮件的简单实例

    今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码是我的全部代码,朋友们如果想用,直接 ...

  9. javamail发送邮件的简单实例(转)

    今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 注意:要先导入javamail的mail.jar ...

随机推荐

  1. OOP: One pont of view of OOP与基于算法设计的区别

    ..摘自<C++网络编程 卷1:运用ACE和模式消除复杂性> <C++ Network Programming Volume 1 Mastering Complexity with ...

  2. 【改】iOS学习之NSAttributedString(富文本)

    NSAttributedString 叫做富文本,是一种带有属性的字符串,通过它可以轻松的在一个字符串中表现出多种字体.字号.字体大小等各不相同的风格,还可以对段落进行格式化,一般都是对可变富文本(N ...

  3. 如何保存微信的小视频 How to keep WeChat 'Sights'

    微信小视频非常方便,但很难将其下载到本地电脑长期保存.网上有介绍方法,如百度经验上办法,但目前看来它可能只适用安卓系统,而且或已失效(可能由于版本更新).对Windows Phone无效,而对于更加封 ...

  4. C#中UnixTime和DateTime的转换(转载)

    由于在API请求中返回回来的时间格式为UNIX形式,需要转换成正常的显示方式,在网上找到了这么一个例子. 使用是在C#中使用的,所以WP8开发应该也可以. 转载源地址:http://blog.linu ...

  5. 【DP】HDU 1087

    HDU 1078 Super Jumping! Jumping! Jumping! 题意: 有这么个游戏,从start到end(自己决定在哪停下来)连续跳圈,中间不能空一个圈不跳,圈里的数字必须比你上 ...

  6. HDU1541 树状数组

    Stars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  7. VMware与virtualbox安装centos7连接网络不可达问题解决笔记(连接网络)

    我最初是安装vmware遇到访问不到网络,按网上的配置方法都不能解决.然后我感觉可能跟系统有关,我装的是centos,然后我试着在virtualbox上安装看遇到什么问题. 用virtualbox安装 ...

  8. Bootstrap个人总结

    Bootstrap框架 1.以栅栏式布局,分12列,16列,24列和32列,常用12列. 2.整个页面必须在container容器内部 3.移动端以 <meta name="viewp ...

  9. internet 协议入门

    正文 1.概述 互联网的实现,分成好几层.每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持. 1.1 模型划分 首先我们需要明白的事互联网的实现是分层级的,那么这个层级的划分根据不同的模型又 ...

  10. go语言学习笔记

    Go语言学习基本类型Bool 取值范围:true,false (不可以用数字代替)Int/uint 根据平台可能为32或64位int8/uint8 长度:1字节 取值范围-128~127/0~255b ...