200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java email邮件发送465

java email邮件发送465

时间:2019-12-05 20:41:57

相关推荐

java email邮件发送465

为什么使用465端口呢:

因为阿里云服务器以安全为由将25端口给封了,无法使用25号端口发送邮件,所以只有使用465端口啦。

实现java发送邮件的过程大体有以下几步:

1.准备一个properties文件,该文件用于存放SMTP服务器地址等参数。

2.利用properties创建一个Session对象

3.利用Session创建Message对象,然后设置邮件主题,收件人及正文等信息

如果发送文本邮件,使用message.setText(content)。

如果发送html邮件,使用message.setContent(content, "text/html;charset=utf-8")。

如果发送带附件的邮件,使用message.setContent(multipart)。

multipart对象是一个用于装附件的容器。

multipart.addBodyPart(bodyPart)将附件装入multipart容器。

bodyPart是一个附件对象。

bodyPart.setDataHandler(new DataHandler(new FileDataSource("文件路径")));将文件包装成附件。

4.利用Transport对象发送邮件

准备条件

1.两个jar包,网上到处都是随便下载。

下面两个网站有大量的jar包

/

/maven/

2.如果可以,就准备一个配置文件,但不准备也行,至于为什么,看代码就知道了。

以下是使用465端口发送文本邮件和带有附件的邮件的例子。

package com.wenba1314.tools;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.*;import javax.mail.internet.*;import java.util.Properties;public class EmailTool {//创建pro用于保存所需的数据public static Properties pro;static {pro = new Properties();try {/*加载配置文件,配置文件需要有from字段用于保存发件人账号password为代理密码注意此密码并非邮箱账户密码,而是开启客户端代理时设置的密码*/pro.load(EmailTool.class.getClassLoader().getResourceAsStream("email.properties"));} catch (Exception e) {System.out.println("配置文件未找到,使用默认的账户发送!");pro.setProperty("from", "********@");pro.setProperty("password", "********");}pro.setProperty("mail.smtp.ssl.enable", "true");pro.setProperty("mail.smtp.host", "");pro.setProperty("mail.smtp.port", "465");pro.setProperty("mail.smtp.auth", "true");pro.setProperty("mail.debug","true");}public static void main(String[] args) {System.out.println(pro);sendTextMessage("********@","你是猪变得么","猪啊");sendEmailWithAttachments("********@","c:\\Users\\pc\\Desktop\\a.jpg","猪啊");}//发送普通的文本文件,一般用于网站向用户发送验证码。第一个参数为收件人地址,第二个参数为文本信息,第三个参数为邮件主题public static void sendTextMessage(String toEmailAddress, String content, String subject) {//创建session对象,第一个参数为连接邮件服务器的连接信息,第二个为身份验证的接口,重写抽象方法,参数为登陆邮件服务器的代理账号密码。Session session = Session.getDefaultInstance(pro, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(pro.getProperty("from"), pro.getProperty("password"));}});try {//创建消息对象MimeMessage message = new MimeMessage(session);//设置发件人message.setFrom(new InternetAddress(pro.getProperty("from")));//设置收件人message.addRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress(toEmailAddress)});//设置文本主题message.setSubject(subject);//设置文本内容message.setText(content);//使用静态方法发送邮件,此静态方法包装了保存内容,连接服务器等方法。Transport.send(message);} catch (Exception e) {e.printStackTrace();}}//发送带附件的邮件,第一个参数为收件人地址,第二个参数为附件路径,第三个参数为邮件主题public static void sendEmailWithAttachments(String toEmailAddress,String NameOfTheAttachment ,String subject) {//创建session对象,第一个参数为连接邮件服务器的连接信息,第二个为身份验证的接口,重写抽象方法,参数为登陆邮件服务器的代理账号密码。Session session = Session.getDefaultInstance(pro, new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(pro.getProperty("from"), pro.getProperty("password"));}});try {//创建消息对象MimeMessage message = new MimeMessage(session);//设置发件人message.setFrom(new InternetAddress(pro.getProperty("from")));//设置收件人message.addRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress(toEmailAddress)});//设置文本主题message.setSubject(subject);// 添加附件/*创建multipart对象,*并向其中添加邮件的各个部分内容,包括文本内容和附件,* 然后将此对象放入MimeMessage对象中,使用message.setContent(multipart);* */Multipart multipart = new MimeMultipart();if (NameOfTheAttachment != null && !"".equals(NameOfTheAttachment)) {// 根据路径获取文件FileDataSource dataSource = new FileDataSource(NameOfTheAttachment);//创建附件对象BodyPart bodyPart = new MimeBodyPart();//设置附件内容bodyPart.setDataHandler(new DataHandler(dataSource));//设置附件名//MimeUtility.encodeWord可以避免文件名乱码bodyPart.setFileName(MimeUtility.encodeWord(dataSource.getFile().getName()));//将附件放入multipart中multipart.addBodyPart(bodyPart );}// 将multipart放入message中message.setContent(multipart);//使用静态方法发送邮件,此静态方法包装了保存内容,连接服务器等方法。Transport.send(message);} catch (Exception e) {e.printStackTrace();}}}

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