本文实例为大家分享了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邮箱带附件