首先加入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. backbonejs使用

    backbone是一个非常好的前端MVC框架,将数据与逻辑分离出来,在稍大一点项目中,backbone都有用武之地. 个人感觉backbone最好的地方就是通过事件来管理数据改变导致的视图改变,bac ...

  2. 【原】iOS学习之控制器的创建

    本次博客是一篇总结性质的博客,总结的是各种创建控制器的方式以及一些需要注意的操作. 1.通过storyboard创建控制器 正如我上一篇博客中所说,当 Main Interface 没有选定的时候,我 ...

  3. centos yum安装saltstack

    1.导入安装源 centos5 rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm cen ...

  4. 无题的题 & 模拟退火...

    题意: 给你不超过8条一端在圆心的半径,求他们组成的凸包的最大面积. SOL: 正解怎么搞啊不会啊...然后昨天毛爷爷刚讲过模拟退火...那么就打一个吧... 然后就T了,不过三角形的部分分妥妥的.. ...

  5. Codeforces Round #279 (Div. 2) vector

    A. Team Olympiad time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  6. php数组操作的基本函数

    数组的键名和值array_values($arr);获得数组的值array_keys($arr);获得数组的键名array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖) ...

  7. *HDU3367 最小生成树

    Pseudoforest Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tot ...

  8. 第一章-第一题(小学生四则运算)--By郭青云

    1.项目需求 a) 除了整数以外,还要支持真分数的四则运算. (例如:  1/6 + 1/8 = 7/24) b) 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. c) 逐步扩 ...

  9. PHP性能监测的工具介绍 - XHProf

    http://segmentfault.com/a/1190000003509917 http://www.cnblogs.com/casatwy/archive/2013/01/17/2865241 ...

  10. C语言

    HTML的学习早已落下帷幕,我们已经进入了C语言的学习,这段时间时间主要学了运算符.表达式.循环语句以及数组和字符串,感觉到了一种朦朦胧胧懂得尴尬. 运算符主要包括:算术运算符.赋值运算符.关系运算符 ...