Java 发送邮件

Posted Kikyo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 发送邮件相关的知识,希望对你有一定的参考价值。

一、两个jar包

二、代码

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import com.sun.mail.util.MailSSLSocketFactory;

public class Test1 {
    public static void main(String[] args) {
        sendMail();
    }

    public static void sendMail() {
        String from = "90xxxx31@qq.com";
        String to = "229xxxx572@qq.com";
        String host = "smtp.qq.com";
        try {
            Properties properties = System.getProperties();
            //SSL加密
            MailSSLSocketFactory sf = new MailSSLSocketFactory();
            sf.setTrustAllHosts(true);
            properties.put("mail.smtp.ssl.enable", "true");
            properties.put("mail.smtp.ssl.socketFactory", sf);
            properties.setProperty("mail.smtp.host", host);
            properties.put("mail.smtp.auth", "true");

            //获取发送邮件会话、获取第三方登录授权码
            Session session = Session.getDefaultInstance(properties, new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(from, "xxxxxxxx");//第三方登录授权码
                }
            });

            Message message = new MimeMessage(session);

            //防止邮件被当然垃圾邮件处理,披上Outlook的马甲
            message.addHeader("X-Mailer", "Microsoft Outlook Express 6.00.2900.2869");

            message.setFrom(new InternetAddress(from));

            message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));

            message.setSubject("This is the subject line!");

            BodyPart bodyPart = new MimeBodyPart();

            bodyPart.setText("发送");

            Multipart multipart = new MimeMultipart();

            multipart.addBodyPart(bodyPart);

            //附件
            // bodyPart = new MimeBodyPart();
            // String fileName = "文件路径";
            // DataSource dataSource = new FileDataSource(fileName);
            // bodyPart.setDataHandler(new DataHandler(dataSource));
            // bodyPart.setFileName("文件显示的名称");
            // multipart.addBodyPart(bodyPart);

            message.setContent(multipart);

            Transport.send(message);
            System.out.println("mail transports successfully");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用JAVA发送QQ邮件的总结

以上是关于Java 发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

Javascript - 使用 HTML 片段通过电子邮件发送 JSON 输出

用java写一个邮件发送代码

C#和ASP.NET通过Gmail账户发送邮件的代码

ThinkPHP中使用PHPMailer发送邮件

使用 Java 发送邮件

java代码如何发送一封带图片的邮件