利用javaMail发送邮件

这篇实现了简单的发送邮件。

import java.util.Date;
import java.util.Map;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class Sender {
    //填写 邮箱的用户名 / 密码 这个可以配置在一个properties 文件中
    private String username = "[email protected]";
    private String password = "xxxxxxx";
    //这里可以放一个对象进来不用非用map
    public void send(Map map)throws Exception{
        /*
         * 创建Properties对象
         * 设置连接的邮件服务地址
         * 开启身份验证
         */
        Properties props = new Properties();
        //这个是邮箱服务  qq 的就是smtp.qq.com
        props.put("mail.smtp.host", "smtp.163.com");
        //开启验证
        props.put("mail.smtp.auth", "true");
        /*
         * 从 ProPerties中创建一个会话对象 ,连接邮件服务器
         * getDefaultInstance(1,2)
         * 1Properties
         * 2身份验证对象Authenticator
         */
        Session session = Session.getDefaultInstance(props,new Authenticator(){
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                // TODO Auto-generated method stub
                //这个事验证用户名和密码
                return new PasswordAuthentication(username, password);
            }
        });
        /*
         * 定义邮件内容对象 Message  将session 放入
         */
        Message msg = new MimeMessage(session);
        //定义发送人
        Address from = new InternetAddress((String)map.get("from"));
        msg.setFrom(from);
        //定义收件人
        Address to = new InternetAddress((String)map.get("to"));
        msg.setRecipient(Message.RecipientType.TO,to);
        /*Address[] tos = new Address[3];
        msg.setRecipients(Message.RecipientType.TO, tos);*/
        //定义抄送人  这里如果是多个的话   需要一个Address 数组
        Address cc = new InternetAddress((String)map.get("cc"));
        msg.setRecipient(Message.RecipientType.CC,cc);
        //设置主题
        msg.setSubject((String)map.get("subject"));
        /*
         * 添加邮件内容
         * setContent
         */
        msg.setContent((String)map.get("content"),"text/plain;charset=utf-8");
        //发送时间
        msg.setSentDate(new Date());
        //保存消息
        msg.saveChanges();
        //发送消息
        Transport.send(msg);
    }
}

测试:

import java.util.HashMap;
import java.util.Map;
import com.etoak.util.Sender;

public class Test {
    public static void main(String[] args) throws Exception {
        Map map = new HashMap();
        map.put("from","[email protected]");
        map.put("to","[email protected]");
        map.put("cc", "[email protected]");
        map.put("content", "这是邮件内容");
        map.put("subject","这是主题");
        Sender sd = new Sender();
        sd.send(map);
    }
}

测试结果:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-20 00:10:42

利用javaMail发送邮件的相关文章

JavaMail(二):利用JavaMail发送复杂邮件

上一篇文章我们学习了利用JavaMail发送简单邮件,这篇文章我们利用JavaMail发送稍微复杂一点的邮件(包含文本.图片.附件).这里只贴出核心代码,其余代码可参考JavaMail(一):利用JavaMail发送简单邮件 封装发送邮件代码 /** * 封装发送邮件代码 * @author fly * @时间 2017-05-09 * */ public class Email { /** * 创建并发送一封包含文本.图片.附件的复杂邮件 * @throws Exception */ publ

使用JavaMail发送邮件和接受邮件

一. 为什么要学习JavaMail 为什么要学习JavaMail开发? 现在很多WEB应用在开发时都需要集成邮件发送功能,例如: 1. 给新注册的用户自动发送一封包含其注册信息的欢迎E-Mail. 2. 给过生日的注册会员自动发送一封表示祝贺的E-Mail. 3. 将网站的最新活动信息通过E-Mail发送给所有的注册会员. 二. 邮件服务器和协议 1. 邮件服务器: 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.so

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

javamail发送邮件的简单实例 今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码是我的全部代码,朋友们如果想用,直接复制即可. 第一个类:MailSenderInfo.java package com.util.mail;    /**    * 发送邮件需要使用的基本信息  *author by wangfun http://www.5a520.cn 小说520   */  

JavaMail发送邮件

发送邮件包含的内容有: from字段  --用于指明发件人 to字段      --用于指明收件人 subject字段  --用于说明邮件主题 cc字段     -- 抄送,将邮件发送给收件人的同时抄送给另一个收件人,收件人可以看到邮件抄送给了谁 bcc字段   -- 密送,将邮件发送给收件人的同时将邮件秘密发送给另一个收件人,收件人无法看到邮件密送给了谁 邮件体指的就是邮件的具体内容. 使用JavaMail创建邮件和发送邮件 JavaMail创建的邮件是基于MIME协议的.因此可以使用Java

javamail发送邮件(转)

今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码是我的全部代码,朋友们如果想用,直接复制即可.jar包因为我不知道怎么传到javaeye上,所以朋友们回去自己打吧. 我的代码有三个类: 第一个类:MailSenderInfo.java Java代码   package com.util.mail; /** * 发送邮件需要使用的基本信息 */ import java.util.Pr

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

现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能,用户注册成功之后,就将用户的注册信息以Email的形式发送到用户的注册邮箱当中,实现发送邮件功能就得借助于JavaMail了. 一.搭建开发环境 1.1.创建Web项目 1.2.用户注册的Jsp页面 register.jsp 1 <%@ page language="java" p

linux利用sendmail发送邮件的方法

linux利用sendmail发送邮件, 方法1 安装sendmail即可使用, mail -s "test" [email protected] <content.txt bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,配置非常麻烦,而且会带来不必要的资源占用. 方法2.利用外部的smpt服务器 而通过修改配置文件可以使用外部SMTP服务器,可以达到不使用sendmail而用外部的smtp服务器发送邮件的目的: 修改

php利用mail()发送邮件

linux利用sendmail发送邮件,win下可以php的mail函数. mail函数不支持esmtp协议,只能直投,不能登录 以mail函数,163邮箱为例:

linux利用mail发送邮件设置

linux利用mail发送邮件 第一步检查的mail命令是否安装 第二步如果设置mailx smtp set [email protected] set smtp=smtp.163.com set smtp-auth-user=myname set smtp-auth-password=password (客户端授权密码) set smtp-auth=login 第三步163邮箱开启smtp pop3 注意:一般自己发送给自己.发送给其他账号可能出现问题. 在Linux系统下mail命令的测试