JavaMail是一个通过邮件服务器发送和接收邮件的平台独立的框架。
一、简单邮件发送
首先我们需要创建一个Session对象,然后创建一个默认的MimeMessage对象。
importjavax.mail.*; importjavax.mail.internet.*; importjava.util.Properties; publicclassEmailSender{ publicvoidsendEmail(Stringrecipient,Stringsubject,StringmessageBody){ //定义发送邮件的属性 finalStringusername="your-email-id"; finalStringpassword="your-password"; Propertiesprops=newProperties(); props.put("mail.smtp.auth","true"); props.put("mail.smtp.starttls.enable","true"); props.put("mail.smtp.host","smtp.gmail.com"); props.put("mail.smtp.port","587"); //获取Session对象 Sessionsession=Session.getInstance(props, newjavax.mail.Authenticator(){ protectedPasswordAuthenticationgetPasswordAuthentication(){ returnnewPasswordAuthentication(username,password); } }); try{ //创建MimeMessage对象 Messagemessage=newMimeMessage(session); message.setFrom(newInternetAddress("from-email")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipient)); message.setSubject(subject); message.setText(messageBody); //发送邮件 Transport.send(message); }catch(MessagingExceptione){ thrownewRuntimeException(e); } } }
二、发送含有附件的邮件
如果你想要在邮件中添加附件,则需要创建一个使用Multipart实例的MimeMessage,并添加至少一个BodyPart实例到这个Multipart实例中。
publicclassEmailSenderWithAttachment{ publicvoidsendEmailWithAttachment(Stringrecipient,Stringsubject,StringmessageBody,StringfileName){ //创建和配置Session //...省略相同的部分代码... try{ //创建含有附件的邮件 Messagemessage=newMimeMessage(session); message.setFrom(newInternetAddress("from-email")); message.setRecipients(Message.RecipientType.TO,InternetAddress.parse(recipient)); message.setSubject(subject); Multipartmultipart=newMimeMultipart(); BodyPartmessageBodyPart=newMimeBodyPart(); messageBodyPart.setText(messageBody); multipart.addBodyPart(messageBodyPart); //创建附件部分 messageBodyPart=newMimeBodyPart(); DataSourcesource=newFileDataSource(fileName); messageBodyPart.setDataHandler(newDataHandler(source)); messageBodyPart.setFileName(fileName); multipart.addBodyPart(messageBodyPart); //设置邮件内容 message.setContent(multipart); //发送邮件 Transport.send(message); }catch(MessagingExceptione){ thrownewRuntimeException(e); } } }
这段代码中添加了一个新的MimeBodyPart对象到Multipart实例中,这个新的对象包含了附件的内容
原创文章,作者:小蓝,如若转载,请注明出处:https://www.beidandianzhu.com/g/1212.html