Java实现邮件发送QQ邮箱带附件

  

本文实例为大家分享了Java实现邮件发送QQ邮箱带附件的具体代码,供大家参考,具体内容如下

  

添加依赖

        & lt; !——https://mvnrepository.com/artifact/javax.mail/mail——比;   & lt; dependency>   & lt; groupId> javax.mail   & lt; artifactId> mail   & lt; version> 1.4.7   & lt;/dependency>      

关键代码

        进口java.io.File;   进口java.io.UnsupportedEncodingException;   进口java.util.Properties;      进口javax.activation.DataHandler;   进口javax.activation.FileDataSource;   进口javax.mail.Authenticator;   进口javax.mail.BodyPart;   进口javax.mail.Message;   进口javax.mail.MessagingException;   进口javax.mail.NoSuchProviderException;   进口javax.mail.PasswordAuthentication;   进口javax.mail.Session;   进口javax.mail.Transport;   进口javax.mail.internet.InternetAddress;   进口javax.mail.internet.MimeBodyPart;   进口javax.mail.internet.MimeMessage;   进口javax.mail.internet.MimeMultipart;   进口javax.mail.internet.MimeUtility;/* *   *邮件发送工具类& lt; br/比;   *作者:杨杰超& lt; br/比;   *日期:2020年1月9日下午12:02:51 & lt; br/比;   * 2020年版权(c), yangjiechao@dingtalk.com版权所有。你们,br/比;   *   */公开课SendMail {/* *   *想QQ邮箱发送邮件   *   * @param formMail   *发送人邮箱地址   * @param descMail   *接收人邮箱地址   * @param主题   *邮箱主题   * @param内容   *邮箱内容   * @param文件   *附件列表   * @param contentType   *内容格式   * @param密码   * SMTP密码   * @throws MessagingException   * @throws UnsupportedEncodingException   */公共静态孔隙sendQQMail (descMail formMail的字符串,字符串,字符串,字符串内容,文件[]文件,   字符串contentType、字符串密码)抛出MessagingException UnsupportedEncodingException {   属性=new属性();   properties.setProperty (“mail.smtp。主机”、“smtp.qq.com”);   properties.setProperty (“mail.smtp。港”,“465”);   properties.setProperty (“mail.smtp。身份验证”、“真正的”);   properties.setProperty (“mail.debug”,“真正的”);   properties.setProperty (“mail.transport。协议”、“smtp”);   properties.setProperty (“mail.smtp.ssl。启用”、“真正的”);   会话会话=会话。getInstance(属性,新的身份验证(){   @Override   保护PasswordAuthentication getPasswordAuthentication () {   返回新PasswordAuthentication (formMail、密码);   }   });   消息消息=new MimeMessage(会话);   尝试{   消息。setFrom(新InternetAddress (formMail));   message.setRecipient (Message.RecipientType。,新InternetAddress (descMail));   message.setSubject(主题);//是否存在附件   如果(零!=文件,,文件。长度比;0){   MimeMultipart多部分=new MimeMultipart ();      BodyPart contentPart=new MimeBodyPart ();   contentPart。contentType setContent(内容);   multipart.addBodyPart (contentPart);      (文件文件:文件){   MimeBodyPart附件=new MimeBodyPart ();   DataHandler dh3=new DataHandler(新FileDataSource(文件);   attachment.setDataHandler (dh3);   attachment.setFileName (MimeUtility.encodeText (dh3.getName ()));   multipart.addBodyPart(附件);   }   multipart.setSubType(“混合”);      message.setContent(扇形);   message.saveChanges ();   }//普通   其他{   消息。contentType setContent(内容);   }      交通运输=session.getTransport ();   交通工具。连接(formMail、密码);   Transport.send(消息);   }捕捉(UnsupportedEncodingException e) {   把e;   }捕捉(NoSuchProviderException e) {   把e;   }捕捉(MessagingException e) {   把e;   }      }      公共静态void main (String [] args)抛出MessagingException, UnsupportedEncodingException {//由哪个邮箱发送   字符串formMail=" * * * * * * * * @qq.com”;//QQ邮箱祝辞设置在账户开启POP3和SMTP服务查看SMTP密码   字符串smtpPassword=" * * * * * * * * * * * * * * * *”;//发送人邮箱地址   字符串descMail=" 470947852 @qq.com”;   字符串contentType=" text/html; charset=utf - 8”;      字符串对象="测试邮件发送,含附件”;   字符串内容="测试发送邮件,这里是中文”;   文件[]文件=新文件[2];   文件[0]=新文件(“C:/test_1.xls”);   文件[1]=新文件(“C:/test_2.xls”);      发送邮件。sendQQMail (formMail、descMail、主题、内容、文件contentType, smtpPassword);   }   }

Java实现邮件发送QQ邮箱带附件