Java实现邮件发送QQ邮箱带附件
本文实例为大家分享了Java实现邮件发送QQ邮箱带附件的具体代码,供大家参考,具体内容如下
添加依赖
javax.mail 1.4.7
关键代码
importjava.io.File; importjava.io.UnsupportedEncodingException; importjava.util.Properties; importjavax.activation.DataHandler; importjavax.activation.FileDataSource; importjavax.mail.Authenticator; importjavax.mail.BodyPart; importjavax.mail.Message; importjavax.mail.MessagingException; importjavax.mail.NoSuchProviderException; importjavax.mail.PasswordAuthentication; importjavax.mail.Session; importjavax.mail.Transport; importjavax.mail.internet.InternetAddress; importjavax.mail.internet.MimeBodyPart; importjavax.mail.internet.MimeMessage; importjavax.mail.internet.MimeMultipart; importjavax.mail.internet.MimeUtility; /** *邮件发送工具类
*Author:杨杰超
*Date:2020年1月9日下午12:02:51
*Copyright(c)2020,yangjiechao@dingtalk.comAllRightsReserved.
* */ publicclassSendMail{ /** *想QQ邮箱发送邮件 * *@paramformMail *发送人邮箱地址 *@paramdescMail *接收人邮箱地址 *@paramsubject *邮箱主题 *@paramcontent *邮箱内容 *@paramfiles *附件列表 *@paramcontentType *内容格式 *@parampassword *SMTP密码 *@throwsMessagingException *@throwsUnsupportedEncodingException */ publicstaticvoidsendQQMail(StringformMail,StringdescMail,Stringsubject,Stringcontent,File[]files, StringcontentType,Stringpassword)throwsMessagingException,UnsupportedEncodingException{ Propertiesproperties=newProperties(); properties.setProperty("mail.smtp.host","smtp.qq.com"); properties.setProperty("mail.smtp.port","465"); properties.setProperty("mail.smtp.auth","true"); properties.setProperty("mail.debug","true"); properties.setProperty("mail.transport.protocol","smtp"); properties.setProperty("mail.smtp.ssl.enable","true"); Sessionsession=Session.getInstance(properties,newAuthenticator(){ @Override protectedPasswordAuthenticationgetPasswordAuthentication(){ returnnewPasswordAuthentication(formMail,password); } }); Messagemessage=newMimeMessage(session); try{ message.setFrom(newInternetAddress(formMail)); message.setRecipient(Message.RecipientType.TO,newInternetAddress(descMail)); message.setSubject(subject); //是否存在附件 if(null!=files&&files.length>0){ MimeMultipartmultipart=newMimeMultipart(); BodyPartcontentPart=newMimeBodyPart(); contentPart.setContent(content,contentType); multipart.addBodyPart(contentPart); for(Filefile:files){ MimeBodyPartattachment=newMimeBodyPart(); DataHandlerdh2=newDataHandler(newFileDataSource(file)); attachment.setDataHandler(dh2); attachment.setFileName(MimeUtility.encodeText(dh2.getName())); multipart.addBodyPart(attachment); } multipart.setSubType("mixed"); message.setContent(multipart); message.saveChanges(); } //普通 else{ message.setContent(content,contentType); } Transporttransport=session.getTransport(); transport.connect(formMail,password); Transport.send(message); }catch(UnsupportedEncodingExceptione){ throwe; }catch(NoSuchProviderExceptione){ throwe; }catch(MessagingExceptione){ throwe; } } publicstaticvoidmain(String[]args)throwsMessagingException,UnsupportedEncodingException{ //由哪个邮箱发送 StringformMail="********@qq.com"; //QQ邮箱>设置>账户开启POP3/SMTP服务查看smtp密码 StringsmtpPassword="****************"; //发送人邮箱地址 StringdescMail="470947852@qq.com"; StringcontentType="text/html;charset=UTF-8"; Stringsubject="测试邮件发送,含附件"; Stringcontent="testsendmail,这里是中文"; File[]files=newFile[2]; files[0]=newFile("C:/test_1.xls"); files[1]=newFile("C:/test_2.xls"); SendMail.sendQQMail(formMail,descMail,subject,content,files,contentType,smtpPassword); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。