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

相关文章
|
22天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
25天前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 &lt;&lt;EOF binary put file.txt quit EOF ```
31 4
|
2月前
|
监控 算法 Java
【深度挖掘Java性能调优】「底层技术原理体系」深入探索Java服务器性能监控Metrics框架的实现原理分析(Gauge和Histogram篇)
【深度挖掘Java性能调优】「底层技术原理体系」深入探索Java服务器性能监控Metrics框架的实现原理分析(Gauge和Histogram篇)
32 0
|
11天前
|
Unix Linux 数据安全/隐私保护
Linux服务器如何远程连接?服务器远程连接图文教程
服务器操作系统可以实现对计算机硬件与软件的直接控制和管理协调,任何计算机的运行离不开操作系统,服务器也一样,服务器操作系统主要分为四大流派:Windows Server、Netware、Unix和Linux。 今天驰网飞飞就给你们分享下Linux、Unix系统远程连接图文操作方法
21 4
Linux服务器如何远程连接?服务器远程连接图文教程
|
2月前
|
Linux Shell 文件存储
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(深入df和dh的区别和探索)
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(深入df和dh的区别和探索)
41 1
|
23小时前
|
Prometheus 监控 Cloud Native
构建高效可靠的Linux服务器监控体系
【4月更文挑战第30天】 在维护企业级Linux服务器的稳定性和性能方面,一个周全的监控体系是至关重要的。本文将探讨如何利用开源工具和实践构建一个高效、灵活且用户友好的监控系统。我们将重点讨论核心组件的选择、配置、报警机制以及数据分析方法,旨在帮助读者打造一个能够实时响应并预防潜在问题的监控环境。
|
2天前
|
安全 算法 Linux
【专栏】Linux 服务器还有漏洞?建议使用 OpenVAS 日常检查!
【4月更文挑战第28天】OpenVAS 是一款开源的漏洞扫描工具,用于全面评估 Linux 服务器安全。它具有全面性、准确性和实时性的特点,能扫描各种设备并及时发现安全漏洞。使用 OpenVAS 包括安装、配置和执行扫描,以及分析结果并采取修复措施。在使用过程中应注意扫描时间、范围和策略的选择。通过定期检查和修复漏洞,结合其他安全措施,可以提升服务器安全性。OpenVAS 是保障 Linux 服务器安全的重要工具,但安全维护也需要持续学习和适应新挑战。
|
5天前
|
监控 Linux 网络安全
Linux服务器如何查询连接服务器的IP
【4月更文挑战第17天】Linux服务器如何查询连接服务器的IP
8 1
|
5天前
|
Linux
如何将一个linux服务器挂载到另外一个linux服务器上
如何将一个linux服务器挂载到另外一个linux服务器上
13 1
|
7天前
|
监控 安全 Linux
Linux系统之安装ServerBee服务器监控工具
【4月更文挑战第22天】Linux系统之安装ServerBee服务器监控工具
51 2

热门文章

最新文章