Java发送邮箱——QQ邮箱

大致分为两类——工具类,测试类

    工具类——先设置服务器,发送端口,身份验证并且建立安全连接,输入登录帐号密码,然后设置发件人收件人、主题编码格式等,具体代码如下:

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.sun.mail.util.MailSSLSocketFactory;

import java.security.GeneralSecurityException;
import java.util.Properties;
public class MailUtil {
	 /**
     * 发送邮件
     * @param to 给谁发
     * @param text 发送内容
     */
    public static void send_mail(String to,String text) throws MessagingException {
        //创建连接对象 连接到邮件服务器
        Properties properties =new Properties();
        //设置发送邮件的基本参数
        //发送邮件服务器
        properties.put("mail.smtp.host", "smtp.qq.com");
        //接收邮件的服务器
        //properties.put("mail.smtp.host", "smtp.exmail.qq.com");
        //发送端口,通常是25
        properties.put("mail.smtp.port", "25");
        //是否要求身份验证
        properties.put("mail.smtp.auth", "true");
        //使用 STARTTLS安全连接
        //properties.put("mail.smtp.starttls.enable","true");  
        //设置发送邮件的账号和密码
        Session session = Session.getInstance(properties, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                //两个参数分别是发送邮件的账户和密码
                return new PasswordAuthentication("邮箱帐号@qq.com","密码");
            }
        });
       
        //创建邮件对象
        Message message = new MimeMessage(session);
        //设置发件人
        message.setFrom(new InternetAddress("邮箱帐号@qq.com"));
        //设置收件人
        message.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
        //设置主题
        message.setSubject("这是一份测试邮件");
        //设置邮件正文  第二个参数是邮件发送的类型
        message.setContent(text,"text/html;charset=UTF-8");
        //发送一封邮件
        Transport.send(message);
    }
}	

       测试类:接收收件人的邮箱帐号,编写测试内容,代码如下:

import java.util.Scanner;

import javax.mail.MessagingException;
public class Text {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		System.out.println("请输入邮箱:");
		String name=input.next();
		System.out.println("请输入内容:");
		String a=input.next();
		 try {
	            MailUtil.send_mail(name, a);
	            System.out.println("邮件发送成功!");
	        } catch (MessagingException e) {
	            e.printStackTrace();
	        }
	}
}

        设置邮箱的安全性:

               1、进入邮箱中(如QQ邮箱):


    2、点击邮箱首页之后的设置:


                3、点击账户,进入账户之后如下所示位置:


        3、点击开启服务中的POP3/SMTP服务,如果是关闭,点击开启:

        4、将授权码记下,点击确定即可,然后在上述代码中的登录时输入的邮箱帐号密码出填写此授权码(注:填写邮箱对应的密码没有用)



备注:若是其他邮箱也可按照相同步骤设置,代码中只需修改对应的服务器地址即可,有解释不当之处,敬请见谅,欢迎指出,我好加以改正,谢谢

猜你喜欢

转载自blog.csdn.net/caiqirui/article/details/80821322

相关文章