Linux CentOS7搭建邮件服务器并用Foxmail和Java代码发送邮件(下)

简介: Linux CentOS7搭建邮件服务器并用Foxmail和Java代码发送邮件(下)

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

相关文章
|
8月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
566 6
|
9月前
|
IDE Java 关系型数据库
Java 初学者学习路线(含代码示例)
本教程为Java初学者设计,涵盖基础语法、面向对象、集合、异常处理、文件操作、多线程、JDBC、Servlet及MyBatis等内容,每阶段配核心代码示例,强调动手实践,助你循序渐进掌握Java编程。
1161 3
|
9月前
|
安全 Java 应用服务中间件
Spring Boot + Java 21:内存减少 60%,启动速度提高 30% — 零代码
通过调整三个JVM和Spring Boot配置开关,无需重写代码即可显著优化Java应用性能:内存减少60%,启动速度提升30%。适用于所有在JVM上运行API的生产团队,低成本实现高效能。
1069 3
|
8月前
|
Java 数据处理 API
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
384 115
|
9月前
|
Java
java入门代码示例
本文介绍Java入门基础,包含Hello World、变量类型、条件判断、循环及方法定义等核心语法示例,帮助初学者快速掌握Java编程基本结构与逻辑。
665 0
|
8月前
|
安全 Java 编译器
为什么你的Java代码需要泛型?类型安全的艺术
为什么你的Java代码需要泛型?类型安全的艺术
279 98
|
8月前
|
安全 Java 容器
告别繁琐判空:Optional让你的Java代码更优雅
告别繁琐判空:Optional让你的Java代码更优雅
|
8月前
|
安全 Java 容器
告别空指针噩梦:Optional让Java代码更优雅
告别空指针噩梦:Optional让Java代码更优雅
532 94
|
8月前
|
Java 编译器 API
java最新版和java8的区别,用代码展示
java最新版和java8的区别,用代码展示
672 43

热门文章

最新文章