900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Java邮件发送QQ邮箱带附件

Java邮件发送QQ邮箱带附件

时间:2019-10-16 17:49:50

相关推荐

Java邮件发送QQ邮箱带附件

添加依赖

<!-- /artifact/javax.mail/mail --><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency>

关键代码

import java.io.File;import java.io.UnsupportedEncodingException;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.Authenticator;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.NoSuchProviderException;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 javax.mail.internet.MimeUtility;/*** 邮件发送工具类 <br/>* Author:杨杰超<br/>* Date:1月9日 下午12:02:51 <br/>* Copyright (c) , yangjiechao@ All Rights Reserved.<br/>**/public class SendMail {/*** 想QQ邮箱发送邮件* * @param formMail* 发送人邮箱地址* @param descMail* 接收人邮箱地址* @param subject* 邮箱主题* @param content* 邮箱内容* @param files* 附件列表* @param contentType* 内容格式* @param password* SMTP密码* @throws MessagingException* @throws UnsupportedEncodingException*/public static void sendQQMail(String formMail, String descMail, String subject, String content, File[] files,String contentType, String password) throws MessagingException, UnsupportedEncodingException {Properties properties = new Properties();properties.setProperty("mail.smtp.host", "");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");Session session = Session.getInstance(properties, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(formMail, password);}});Message message = new MimeMessage(session);try {message.setFrom(new InternetAddress(formMail));message.setRecipient(Message.RecipientType.TO, new InternetAddress(descMail));message.setSubject(subject);// 是否存在附件if (null != files && files.length > 0) {MimeMultipart multipart = new MimeMultipart();BodyPart contentPart = new MimeBodyPart();contentPart.setContent(content, contentType);multipart.addBodyPart(contentPart);for (File file : files) {MimeBodyPart attachment = new MimeBodyPart();DataHandler dh2 = new DataHandler(new FileDataSource(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);}Transport transport = session.getTransport();transport.connect(formMail, password);Transport.send(message);} catch (UnsupportedEncodingException e) {throw e;} catch (NoSuchProviderException e) {throw e;} catch (MessagingException e) {throw e;}}public static void main(String[] args) throws MessagingException, UnsupportedEncodingException {// 由哪个邮箱发送String formMail = "********@";// QQ邮箱>设置>账户 开启POP3/SMTP服务 查看smtp密码String smtpPassword = "****************";// 发送人邮箱地址String descMail = "470947852@";String contentType = "text/html;charset=UTF-8";String subject = "测试邮件发送,含附件";String content = "test send mail, 这里是中文";File[] files = new File[2];files[0] = new File("C:/test_1.xls");files[1] = new File("C:/test_2.xls");SendMail.sendQQMail(formMail, descMail, subject, content, files, contentType, smtpPassword);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。