10-auth.conf
使用下面命令修改配置文件
vim /etc/dovecot/conf.d/10-auth.conf
第10行的 disable_plaintext_auth 取消注释,并将值改为no:
10-mail.conf
使用下面命令修改配置文件
vim /etc/dovecot/conf.d/10-mail.conf
第30行 mail_location 取消注释并修改值为 maildir:~/Maildir:
10-master.conf
使用下面命令修改配置文件
vim /etc/dovecot/conf.d/10-master.conf
第90~92行取消注释,并修改对应的值如图:
代码如下:
unix_listener auth-userdb { mode = 0666 user = postfix group = postfix }
10-ssl.conf
使用下面命令修改配置文件
vim /etc/dovecot/conf.d/10-ssl.conf
将第8行的 ssl 值修改为 no,如图:
配置好后重启 postfix 和 dovecot 的服务
systemctl restart postfix systemctl restart dovecot
暴露端口
我们需要暴露110和25端口,使用以下命令:
firewall-cmd --zone=public --add-port=25/tcp --permanent firewall-cmd --zone=public --add-port=110/tcp --permanent firewall-cmd --reload
或者你可以直接关闭防火墙
# 临时关闭 systemctl stop firewalld # 永久关闭 systemctl disable firewalld
创建用户并测试邮件服务器
创建用户并设置密码
# 创建用户 useradd xiaohh passwd xiaohh
使用foxmail登录邮件服务器
先去下载foxmail,安装完成后打开,并点击其他邮箱:
点击手动设置:
新建账号如图(注意如果你是用的hosts解析的域名,那么在你的Windows电脑上也要配置hosts文件):
点击创建看到设置成功点完成即可:
然后登陆成功来到主界面,点击写邮件:
编写好一个邮件了点击发送:
来到我们的QQ邮箱,可以发现接收成功:
如果服务器是在外网,那么你同时也可以收邮件,但是受于反垃圾邮件的约束,一般云服务器不会给你开放用来发送邮件的25端口,也就是你只能用来收邮件(以阿里云为例):
Java代码链接自己搭建的邮箱服务器发送邮件
现在我们需要用Java代码发送邮件,首先我们搭建一个SpringBoot项目,其中各个文件的内容:
- pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.8</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>love.xiaohh</groupId> <artifactId>email-test</artifactId> <version>0.0.1-SNAPSHOT</version> <name>email-test</name> <description>email-test</description> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
- application.yaml
server: port: 8080 spring: mail: # 这里注意修改为你们自己的邮箱服务器地址还有用户名和密码 host: mail.xiaohh.love username: xiaohh@xiaohh.love password: ************* port: 25 protocol: smtp default-encoding: UTF-8
- EmailTestApplication.java
package love.xiaohh.email; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @SpringBootApplication public class EmailTestApplication { @Autowired private JavaMailSender mailSender; public static void main(String[] args) { SpringApplication.run(EmailTestApplication.class, args); } @GetMapping("/sendEmail") public String sendEmail() { SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); // 收邮件的地址注意修改 simpleMailMessage.setTo("**********@qq.com"); simpleMailMessage.setSubject("测试邮件"); simpleMailMessage.setText("来自Java的测试邮件"); simpleMailMessage.setFrom("XiaoHH"); mailSender.send(simpleMailMessage); return "success"; } }
然后我们尝试访问以下我们编写的这个控制器 http://127.0.0.1:8080/sendEmail 可以看到有内容返回:
查看邮箱的收件情况:
这样我们在代码中的使用自行搭建的邮箱服务器就成功了,代码下载地址:https://download.csdn.net/download/m0_51510236/87415771