JavaMail邮件发送

Java发送激活邮件

本篇内容主要参考菜鸟教程,以及慕课网上的视频教程。

  • 邮箱服务器(SMTP(发送协议),POP3(接收协议))
  • 使用jar包(JavaMail mail.jar 1.4.5 和 JAF(版本 1.1.1) activation.jar)
  • **示例代码-HTML邮件 **
  • **参考资料 **

示例代码-HTML邮件

代码块

下面是一个发送 HTML E-mail 的例子。假设你的 localhost 已经连接到网络。

和上一个例子很相似,除了我们要使用 setContent() 方法来通过第二个参数为 “text/html”,来设置内容来指定要发送HTML 内容。

<%@ page import="java.util.*" %>
<%@ page import="javax.mail.*" %>
<%@ page import="javax.mail.internet.*" %>
<%@ page import="javax.activation.*" %>
<%
    //163邮箱发送带有附件的邮件到qq邮箱
    String result;
    // 收件人的电子邮件
    String to = "xxx@qq.com";

    // 发件人的电子邮件名和邮箱授权码
    String from = "xxx@163.com";
    String psd = "NJBBWQJSOINWIYER";//这里写邮箱授权码,而不是邮箱密码
    //设置用户名
    String user = "xxx";

    Properties properties = new Properties();

    try {
        // 设置用户的认证方式
        properties.setProperty( "mail.smtp.auth", "true" );
        //设置传输协议
        properties.setProperty( "mail.transport.protocol", "smtp" );
        //SMTP邮件服务器
        properties.setProperty( "mail.smtp.host", "smtp.163.com" );
        //SMTP邮件服务器默认端口
        properties.setProperty( "mail.smtp.port", "25" );

        // 获取默认的Session对象。
        Session mailSession = Session.getDefaultInstance( properties );

        // 创建一个默认的MimeMessage对象。
        Message message = new MimeMessage( mailSession );
        // 根据session对象获取邮件传输对象Transport
        Transport transport = mailSession.getTransport();

        // 设置 From: 头部的header字段
        message.setFrom( new InternetAddress(from) );
        // 设置 To: 头部的header字段
        message.addRecipient( Message.RecipientType.TO, new InternetAddress( to ) );
        // 设置 Subject: header字段
        message.setSubject( "This is the Subject Line!" );
        // 现在设置的实际消息

        BodyPart messageBodyPart = new MimeBodyPart();

        messageBodyPart.setText("This is message body");

        Multipart multipart = new MimeMultipart();

        multipart.addBodyPart(messageBodyPart);

        messageBodyPart = new MimeBodyPart();
        //使用绝对路径
        String filename = "C:\\Users\\lenovo\\Desktop\\test.txt";
        //添加文件到message
        DataSource source = new FileDataSource(filename);

        messageBodyPart.setDataHandler(new DataHandler(source));
        messageBodyPart.setFileName(filename);


        multipart.addBodyPart(messageBodyPart);
        message.setContent(multipart);
        message.setSentDate(new Date());

        // 设置发件人的账户名和密码
        transport.connect(user,psd);
        // 发送邮件,并发送到所有收件人地址,message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
        transport.sendMessage( message, message.getAllRecipients() );

        result = "Sent message successfully....";
    } catch (Exception e) {
        e.printStackTrace();
        result = "Error: unable to send message....";
    }

%>
<html>
<head>
    <title>Send Email using JSP</title>
</head>
<body>
<center>
    <h1>Send Email using JSP</h1>
</center>
<p align="center">
    <%
        out.println("Result: " + result + "\n");
    %>
</p>
</body>
</html>

注意:

附件是否存在,以及编码,文件类型等。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值