• Java实现QQ邮件发送


    Java实现QQ邮件发送

    首先我们需要两个jar包,点击下面即可下载这两个包:

    我们这里采用QQ邮箱发送邮件为例,代码如下:

    复制代码
    package ddd;
    
    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 SendEmail {
    
        public static void main(String[] args) {
            try {
                
                //设置发件人
                String from = "xxx@qq.com";
                
                //设置收件人
                String to = "xxxx@qq.com";
                
                //设置邮件发送的服务器,这里为QQ邮件服务器
                String host = "smtp.qq.com";
                
                //获取系统属性
                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, "第三方登录授权码");
                    }
                });
                
                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();
            }
        }
    }
    复制代码

    QQ邮箱发送邮件记得要在设置里面开启POP3/SMTP服务,然后获取第三方登录的授权码。

    上面的代码中启用了SSL加密,网上很多人说QQ发送邮件不加上SSL加密会报错,楼主这里不加也是可以发送的不知道为什么,但是为了数据安全还是加上了。

    有些人发送的邮件会被当做垃圾邮件处理,这里我也进行了处理,给邮件头披上Outlook的马甲,当然也可以将邮件内容以HTML格式发送,以防止被当成垃圾邮件。

    上述就是一个简单的java发送QQ带附件的邮件的代码。

  • 相关阅读:
    Hive的安装
    ubuntu下能ping通ssh不通的解决思路
    ubuntu下pig报错ERROR 2999: Unexpected internal error. Failed to create DataStorage的解决
    Ubuntu系统中各种文件颜色的含义
    Hbase建表时遇到的问题This could be a sign that the server has too many connections
    Python
    Python
    Python
    Python
    Python
  • 原文地址:https://www.cnblogs.com/developer-ios/p/12057296.html
Copyright © 2020-2023  润新知