qq怎么发邮件(怎么登陆电子邮件)

业务场景是不是服务器 down 了?爬虫的 Dom 解析没有解析到内容?用户注册消息通知(代码异常通知等)邮件服务器和传输协议要在网络上实现邮件功能,必须要有专

业务场景

是不是服务器 down 了?爬虫的 Dom 解析没有解析到内容?用户注册消息通知(代码异常通知等)

邮件服务器和传输协议

要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。SMTP服务器地址:一般是 smtp.xxx.com,比如163邮箱是smtp.163.com,qq邮箱是smtp.qq.com。SMTP协议通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。POP3协议通常把处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器)。

Java发送邮件

基于JavaMail实现向QQ邮箱发送邮件

好了,基本原理和业务场景都清楚了。我们以QQ邮箱为例(163和其他邮箱差不多)。基于SSM框架,SpringBoot是一样的。当然,SSM框架将配置SpringBoot,但不容易得到它。

打开SMTP服务

基于JavaMail实现向QQ邮箱发送邮件

单击设置-帐户。

基于JavaMail实现向QQ邮箱发送邮件

请记住这个序列号,它将在下面的配置中使用。

基于JavaMail实现向QQ邮箱发送邮件

导入关于spring的依赖,自己删除。

<!--邮件发送--> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.1</version> </dependency> <!--引入spring的上下文jar--> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.22.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.3.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.4.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.3.13.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>

工程目录结构

基于JavaMail实现向QQ邮箱发送邮件

设置配置文件mail.properties

163邮箱中的上述应用程序配置可能与QQ页面的位置不同。请自行查找(基本相同)。

#服务器主机名QQ邮箱 smtp.xx.com 根据自己邮箱的使用自行设置 163邮箱: smtp.163.commail.smtp.host=smtp.qq.com#自己的邮箱mail.smtp.username=********@qq.com#密码/客户端授权码 这里的授权码就是刚才在邮箱中生成的mail.smtp.password=******** #编码字符mail.smtp.defaultEncoding=utf-8#是否进行用户名密码校验mail.smtp.auth=true#设置超时时间mail.smtp.timeout=20000

春天的一些内容。xml都是自己删除的,我复制的。

spring-核心. xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--读取属性文件--> <context:property-placeholder location="classpath:mail.properties"/> <!--配置邮件接口--> <bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="${mail.smtp.host}"/> <property name="username" value="${mail.smtp.username}"/> <property name="password" value="${mail.smtp.password}"/> <property name="defaultEncoding" value="${mail.smtp.defaultEncoding}"/> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">${mail.smtp.auth}</prop> <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop> </props> </property> </bean> <context:component-scan base-package="com.*"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan></beans>

发送邮件控制器

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.core.io.FileSystemResource;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.mail.javamail.MimeMessageHelper;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;import javax.mail.MessagingException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.io.File;import java.io.IOException;import java.util.Properties;/** * @Description: 发送邮件 * @Author: 张楚涵 * @Date: 2019/8/14 0014 15:58 * @version:1.0.0 */@RestControllerpublic class SenEmailController { @Autowired private JavaMailSender javaMailSender;//在spring中配置的邮件发送的bean @RequestMapping(value = "/send",method = RequestMethod.GET,produces = "text/html; charset=utf-8") public Object sendMail03(){ MimeMessage mMessage=javaMailSender.createMimeMessage();//创建邮件对象 MimeMessageHelper mMessageHelper; Properties prop = new Properties(); String from; try { //从配置文件中拿到发件人邮箱地址 //根据自己的目录设置 prop.load(this.getClass().getClassLoader().getResourceAsStream("mail.properties")); from = prop.get("mail.smtp.username")+""; mMessageHelper=new MimeMessageHelper(mMessage,true); // mMessageHelper.setFrom(from);//发件人邮箱 // 第二个参数是你想发送邮件时想用的名字 mMessageHelper.setFrom(new InternetAddress(from, "###", "UTF-8")); mMessageHelper.setTo("*******@qq.com");//收件人邮箱 mMessageHelper.setSubject("******");//邮件的主题 mMessageHelper.setSubject("Spring的邮件发送");//邮件的主题 //邮件的文本内容,true表示文本以html格式打开 mMessageHelper.setText("<p>这是使用spring的邮件功能发送的一封邮件</p><br/>" + "<a href='https://blog.csdn.net/qq_41840847'>打开我的博客主页</a><br/>" + "<img src='cid:fengye'>",true); /* File file=new File("F:/img/mr.png");//在邮件中添加一张图片 FileSystemResource resource=new FileSystemResource(file); mMessageHelper.addInline("fengye", resource);//这里指定一个id,在上面引用 mMessageHelper.addAttachment("mr.png", resource);//在邮件中添加一个附件 */ javaMailSender.send(mMessage);//发送邮件 } catch (MessagingException e) { e.printStackTrace(); return "发送失败"; } catch (IOException e) { e.printStackTrace(); } return "发送成功"; }}

试验

基于JavaMail实现向QQ邮箱发送邮件

哈哈,终于完成了。如果你对韩笑的总结有不同的看法,就直接评论吧!别忘了关注转发!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/16517.html

发表回复

登录后才能评论