首先加入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. android 多媒体数据库详解(转)

    转自:http://www.2cto.com/kf/201309/242876.html 主要分为几节: 1. Android的媒体文件内部是如何存储的? 2. Andoid的媒体文件如何获取? 3. ...

  2. 2012 Multi-University #9

    计算几何 A Farmer Greedy 题意:n个点选3个组成三角形,问m个点在三角形内的数字是奇数的这样的三角形个数. 分析:暴力O(N^3*M)竟然能过!我写的搓,加了优化才过掉.正解是先处理出 ...

  3. substr 与 substring 的区别

    substr (start[, 所要子川的长度]); substring(start, 结束的位置)

  4. Tornado 学习笔记13 TCPServer

         为了实现TCPServer的功能,定义一个类用于继承TCPServer并实现handle_stream方法.HttpServer就是一个很好的例子. 13.1 构造函数 def __init ...

  5. docker 配置文件引发的问题

    好久没有配置 vmware / harbor 了,突然间来了兴趣,结果让我失望了,登陆反复的被refused; 这个是配置文件地址:https://github.com/vmware/harbor/b ...

  6. 【超级干货】手机移动端WEB资源整合

    meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 <meta name="viewport" content="width=device-wid ...

  7. Win下常用命令大全

    定时关机命令win+R输入 Shutdown -s //后面不加时间参数,默认的是倒计时30秒后关机Shutdown -s -t 0 //立刻关机shutdown -s -t 100 //100s后关 ...

  8. MySQL、mybatis的查询条件-时间段

    1.配置文件中的写法 <if test="startTime !=null and startTime !='' "> <![CDATA[ and createT ...

  9. android中工作线程安全

    当应用程序启动,创建了一个叫“main”的线程,用于管理UI相关,又叫UI线程.其他线程叫工作线程(Work Thread). Single Thread Model 一个组件的创建并不会新建一个线程 ...

  10. Java备份Oracle数据库

    Java备份Oracle数据库 Java线程.Process.ProcessBuilder 2010 年 6 月 20 日 文章内容描述了使用Java执行外部Oracle导出命令备份数据库功能的示例, ...