javaee学习之路(二十二)JavaMail

本文详细介绍了JavaMail的使用,从安装配置易邮邮件服务器到编写发送邮件的Java程序,包括发送文本、超文本、图片、附件等不同类型的邮件。还讨论了邮件乱码问题的解决方案以及在Web环境下使用JavaMail的注意事项。同时涵盖了XML、Servlet、JSP、JDBC等相关技术要点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Javamail邮件开发
例1 、第一个邮件程序。
第一步、安装、配置邮件的服务器eyoumailserversetup.exe 易邮邮件服务器
这里写图片描述
1.1 点击“设置”,设置为如下内容:
这里写图片描述
1.2 点击“新账号”,注册新邮箱!!!
这里写图片描述
通过上面两步,就注册了一个账号:fandong 密码:12345 邮箱地址:fandong@fd.com
第二步、配置邮件的客户端。Outlook Express
2.1打开Outlook Express主页面,然后点击 工具账户
这里写图片描述
2.2 在账户面板上面点击右上角的“添加”->邮件->显示名:“fandong”->电子邮箱地址:fandong@fd.com
然后:
这里写图片描述
——>账户名:fandong 密码:12345—>完成,出现下列页面:

这里写图片描述

双击账户127.0.0.1 ,将账户127.1.1.0改为:fandong,
配置完成.
第三步、编写发送邮件的java程序:

package cn.itcast.mail;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendSimpleMail {
   
   
    public static void main(String[] args) throws MessagingException {
/***********************************************************/
//1.设置邮件的环境(Session类用于定义整个应用程序所需要的环境信息)
        Properties props=new Properties();
        //1.1设置发送邮件的协议
        props.setProperty("mail.transport.protocol", "smtp");
        //1.2设置邮件smtp服务器的地址
        props.setProperty("mail.host","127.0.0.1");
        //1.3设置连接到邮件服务器使用登录的方式
        props.setProperty("mail.smtp.auth","true");
        //1.4获取Session对象
        Session session=Session.getInstance(props);
        //true表示输出调试信息
        session.setDebug(true);

/***********************************************************/       
//2.利用邮件环境创建邮件

        MimeMessage message=new MimeMessage(session);
        //2.1设置邮件的主题
        message.setSubject("hahahahahahahha");
        //2.2设置邮件的发件人
        message.setFrom(new InternetAddress("fandong@fd.com"));
        //2.3设置收件人
        /*
         * bcc:暗送 (同时发给A 和B ,A和B相互不知道对方也接收了邮件)
         * cc:抄送(同时发给ABC,A为抄送,B为暗送,C为抄送,C知道A也有一份,但是不知道B有一份)
         * to:普通的发送(互相都知道)
         */
        message.addRecipient(RecipientType.TO, new InternetAddress("fandong@fd.com"));
        //群发:message.addRecipients(RecipientType.TO, new Address[]{(new InternetAddress("fandong1@fd.com"),new InternetAddress("fandong2@fd.com")});
        //2.4设置邮件的内容
        message.setText("fandongfandongfandongyoujianneirong");
/***********************************************************/       
//3.发送邮件
        //Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议
        //3.1获取Transport
        Transport transport =session.getTransport();
        //3.2设置连接
        /*
         * fandong@fd.com------>fandong@fd.com
         */
        transport.connect("fandong", "12345");
        //3.3发送邮件
        transport.sendMessage(message,new Address[]{(new InternetAddress("fandong@fd.com"))});
        //3.4关闭资源
        transport.close();
    }
}

第四步、
点击OutLook Express的 这里写图片描述在下拉菜单中选择fandong ,打开其收件箱,就可以看到java程序发送的邮件内容了!!!

例2、发送一封超文本文件的邮件,在Outlook Express中的主题有乱码,可以将其设置为gb2312,就没有乱码了!

package cn.itcast.mail;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class SendAlternativeMail {
   
   
    public static void main(String[] args)  throws Exception{
/***********************************************************/
//1.设置邮件的环境(Session类用于定义整个应用程序所需要的环境信息)
                Properties props=new Properties();
                //1.1设置发送邮件的协议
                props.setProperty("mail.transport.protocol", "smtp");
                //1.2设置邮件smtp服务器的地址
                props.setProperty("mail.host","127.0.0.1");
                //1.3设置连接到邮件服务器使用登录的方式
                props.setProperty("mail.smtp.auth","true");
                //1.4获取Session对象
                Session session=Session.getInstance(props);
                //true表示输出调试信息
                session.setDebug(true);

/***********************************************************/       
//2.利用邮件环境创建邮件
                MimeMessage message=new MimeMessage(session);
                setMessage(message);
        /***********************************************************/       
        //3.发送邮件
                //Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议
                //3.1获取Transport
                Transport transport =session.getTransport();
                //3.2设置连接
                /*
                 * fandong@fd.com------>fandong@fd.com
                 */
                transport.connect("fandong12388", "12345");
                //3.3发送邮件
                transport.sendMessage(message,new Address[]{(new InternetAddress("fandong12388@fd.com"))});
                //3.4关闭资源
                transport.close();
            }
    public static void setMessage(MimeMessage message) throws MessagingException {
        message.setSubject("含有超文本的邮件");
        //设置发件人
        message.setFrom(new InternetAddress("fandong12388@fd.com"));
        //设置收件人
        message.addRecipients(RecipientType.TO, InternetAddress.parse("fandong12388@fd.com,fandong@fd.com"));
        //正文  MimeBodyPart类表示一个MIME消息
        MimeBodyPart text=new MimeBodyPart();
        text.setContent("<h1>xxxxxxxx</h1>", "text/html");
        //alternative子类型是文本
        MimeMultipart mimeMultipart=new MimeMultipart("alternative");
        mimeMultipart.addBodyPart(text);
        //设置邮件的内容
        message.setContent(mimeMultipart);
        //更新邮件的内容和消息头一致
        message.saveChanges();
    }
}

例3、发送一封内嵌有一张图片的邮件!

package cn.itcast.mail;
public class SendRelatedMail {
   
   
    public static void main(String[] args)  throws Exception{
/***********************************************************/
//1.设置邮件的环境(Session类用于定义整个应用程序所需要的环境信息)
                Properties props=new Properties();
                //1.1设置发送邮件的协议
                props.setProperty("mail.transport.protocol", "smtp");
                //1.2设置邮件smtp服务器的地址
                props.setProperty("mail.host","127.0.0.1");
                //1.3设置连接到邮件服务器使用登录的方式
                props.setProperty("mail.smtp.auth","true");
                //1.4获取Session对象
                Session session=Session.getInstance(props);
                //true表示输出调试信息
                session.setDebug(true);
/***********************************************************/       
//2.利用邮件环境创建邮件

                MimeMessage message=new MimeMessage(session);
                setMessage(message);
        /***********************************************************/       
        //3.发送邮件
                //Transport类是发送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议
                //3.1获取Transport
                Transport transport =session.getTransport();
                //3.2设置连接
                /*
                 * fandong@fd.com------>fandong@fd.com
                 */
                transport.connect("fandong12388", "12345");
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值