邮件发送示例

package com.test.util;

import java.util.Date;
import java.util.Properties;
import java.util.Random;

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 Email {

    // mail server
    /** 发送方邮箱协议 */
    private String host = "smtp.ym.163.com";
    // 发送方账号
    private String username = "tttttt@163.com";
    // 发送方密码
    private String password = "11111";

//    private String mail_head_name ="请点击激活";

//    private String mail_head_value = "Head of  mail";

    /**
     *
     */
    private String mail_from = "pp";

    /***
     * 接收方邮箱
     */
    private String mail_to="111111111@qq.cm";

    private String mail_subject = "激活邮箱:"+mail_to;//多次发送给同一个接收方切标题不更换的话会被接受放服务器退回,发送失败

    private String personalName = "管理员";
    
    public Email() {
    }

    
    public void send() throws Exception {
        try {
            Properties props = new Properties(); // 获取系统环境
            Authenticator auth = new Email_Autherticator(); // 认证
            props.put("mail.smtp.host", host);
            props.put("mail.smtp.auth", "true");
            Session session = Session.getDefaultInstance(props, auth);
            // 设置session,和邮件服务器进行通讯。
            MimeMessage message = new MimeMessage(session);
            //设置消息主题
            message.setSubject(mail_subject);
            String sf = ("http://weixin.showsoft.hk/ubb/client/validateEmail?email="+mail_to);
            System.out.println("发送至邮箱:" + mail_to);
             // 发送邮件
            String content = new String(sf.toString().getBytes("ISO-8859-1"),"UTF-8");
            //设置发送内容
            message.setText("请点击激活:"+content+"\t 激活账号,24小时生效,否则重新验证,请尽快激活!"); // 设置邮件正文
            
            message.setSentDate(new Date()); // 设置邮件发送日期
            /**
             * 构造方法
             * InternetAddress(String address, String personal)
             * Construct an InternetAddress given the address and personal name.
             */
            Address address = new InternetAddress(username, personalName);
            message.setFrom(address); // 设置邮件发送者的地址
            Address toAddress = new InternetAddress(mail_to); // 设置邮件接收方的地址
            /**
             * setRecipient(Message.RecipientType type, Address address),用于设置邮件的接收者。
             * 有两个参数,第一个参数是接收者的类型,第二个参数是接收者。
             * 接收者类型可以是Message.RecipientType.TO,Message.RecipientType.CC和Message.RecipientType.BCC,TO表示主要接收人,CC表示抄送人,BCC表示秘密抄送人。
             * 接收者与发送者一样,通常使用InternetAddress的对象。
             *  addRecipient(Message.RecipientType type, Address address),用于添加邮件的接收者,其参数与setRecipient方法的基本相同。
             */
            message.addRecipient(Message.RecipientType.TO, toAddress);
            Transport.send(message); // 发送邮件
            System.out.println("发送成功!!!");
        } catch (Exception ex) {
            ex.printStackTrace();
            throw new Exception(ex.getMessage());
        }
    }

    /*
     * 用来进行服务器对用户的认证
     */
    public class Email_Autherticator extends Authenticator {
        public Email_Autherticator() {
            super();
        }

        public Email_Autherticator(String user, String pwd) {
            super();
            username = user;
            password = pwd;
        }

        public PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }
    }

    
    
    public String getMail_to() {
        return mail_to;
    }

    public void setMail_to(String mail_to) {
        this.mail_to = mail_to;
    }

    public static void main(String[] args) {
        Email sendmail = new Email();
        try {
            sendmail.send();
        
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值