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

相关文章
|
6月前
|
Shell 网络安全 开发工具
服务器已经搭建好的项目如何关联至gitee对应仓库并且将服务器的项目代码推送至gitee-优雅草卓伊凡
服务器已经搭建好的项目如何关联至gitee对应仓库并且将服务器的项目代码推送至gitee-优雅草卓伊凡
388 5
|
9月前
|
安全 Linux Shell
使用SCP命令在CentOS 7上向目标服务器传输文件
以上步骤是在CentOS 7系统上使用SCP命令进行文件传输的基础,操作简洁,易于理解。务必在执行命令前确认好各项参数,尤其是目录路径和文件名,以避免不必要的传输错误。
860 17
|
8月前
|
Ubuntu 安全 小程序
服务器版本的CentOS和Ubuntu哪个更适合你?
但是以上的比较并不说明Ubuntu是不稳定的或者是不安全的,只是以上比较过程中,在稳定性方面Ubuntu稍微逊色了一点。由于Ubuntu在个人桌面电脑的使用率远远高于CentOS,用Ubuntu搭建服务器,如果遇到什么问题,寻找解决方案相对比较容易,这让Ubuntu在选择方面更优于CentOS。如果你是一个初学者,那么毫无疑问Ubuntu是更适合的选择。如果你正在经营自己的公司,在这两者之间,CentOS会更好一些。
|
9月前
|
安全 关系型数据库 网络安全
安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中
通过上述步骤,你可以为PostgreSQL数据库服务器设置SSL加密,从而增加数据在传输中的安全性。确保维持证书的有效性,并且定期更新和管理密钥,以防止未授权访问。
427 0
|
12月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
1520 25
|
11月前
|
Kubernetes Ubuntu Linux
阿里云服务器使用centos还是ubuntu?
在选择阿里云服务器操作系统时,CentOS和Ubuntu各有优势。CentOS以企业级稳定性著称,适合数据库、ERP等长期稳定需求;而Ubuntu开发者友好,支持最新硬件与功能,更适合开发/测试环境及云计算场景。两者在阿里云上均有官方镜像支持,性能差异可忽略。无特殊需求时推荐Ubuntu 22.04 LTS,若需RHEL生态则选AlmaLinux。根据实际需求、团队技术栈及场景灵活决策,阿里云还支持更换系统盘降低试错成本。
|
10月前
|
Oracle 关系型数据库 Linux
MyEMS开源系统安装之CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux
本指南介绍如何在CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器上部署MyEMS开源能源管理系统。内容涵盖系统准备、数据库配置、多个MyEMS服务(如myems-api、myems-admin、myems-modbus-tcp等)的安装与配置,以及Nginx服务器设置和防火墙规则调整。通过完成所有步骤,您将能够访问MyEMS Admin UI和Web UI,默认端口分别为8001和80,初始登录凭据已提供。
654 0
|
6月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
485 10
|
6月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。

热门文章

最新文章