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

相关文章
|
7月前
|
安全 Linux Shell
使用SCP命令在CentOS 7上向目标服务器传输文件
以上步骤是在CentOS 7系统上使用SCP命令进行文件传输的基础,操作简洁,易于理解。务必在执行命令前确认好各项参数,尤其是目录路径和文件名,以避免不必要的传输错误。
758 17
|
6月前
|
Ubuntu 安全 小程序
服务器版本的CentOS和Ubuntu哪个更适合你?
但是以上的比较并不说明Ubuntu是不稳定的或者是不安全的,只是以上比较过程中,在稳定性方面Ubuntu稍微逊色了一点。由于Ubuntu在个人桌面电脑的使用率远远高于CentOS,用Ubuntu搭建服务器,如果遇到什么问题,寻找解决方案相对比较容易,这让Ubuntu在选择方面更优于CentOS。如果你是一个初学者,那么毫无疑问Ubuntu是更适合的选择。如果你正在经营自己的公司,在这两者之间,CentOS会更好一些。
|
7月前
|
安全 关系型数据库 网络安全
安全加固:启动PostgreSQL 14服务器SSL加密的方法指南在CentOS 7环境中
通过上述步骤,你可以为PostgreSQL数据库服务器设置SSL加密,从而增加数据在传输中的安全性。确保维持证书的有效性,并且定期更新和管理密钥,以防止未授权访问。
371 0
|
10月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
1081 25
|
9月前
|
Kubernetes Ubuntu Linux
阿里云服务器使用centos还是ubuntu?
在选择阿里云服务器操作系统时,CentOS和Ubuntu各有优势。CentOS以企业级稳定性著称,适合数据库、ERP等长期稳定需求;而Ubuntu开发者友好,支持最新硬件与功能,更适合开发/测试环境及云计算场景。两者在阿里云上均有官方镜像支持,性能差异可忽略。无特殊需求时推荐Ubuntu 22.04 LTS,若需RHEL生态则选AlmaLinux。根据实际需求、团队技术栈及场景灵活决策,阿里云还支持更换系统盘降低试错成本。
|
11月前
|
存储 安全 Linux
CentOS 7.9系统备份:每日定期发送最新备份文件到另一台服务器。
注意,这个解决方案忽略了很多细节,例如错误处理和通知、备份版本控制、循环处理旧的备份文件等等。此外,你也应该尽量保持源服务器和目标服务器之间快速,稳定且安全的网络连接,并且目标服务器应该有足够的空间用于存放每天的备份文件。如果你需要更高级的备份解决方案,可能需要考虑一下使用专门的备份工具或者服务。
525 18
|
11月前
|
存储 运维 网络协议
【Syslog】Centos下的syslog服务器配置
通过本文的配置指导,您不仅学会了如何安装和配置 `rsyslog`,还掌握了如何在防火墙中开放必要的端口,并验证服务器的配置是否正确。希望这些知识能够帮助您更好地管理和维护您的Linux系统。
2213 15
|
Java 关系型数据库 应用服务中间件
阿里云RDS购买Linux完整过程——安装java环境并跑起来tomcat
阿里云RDS购买Linux完整过程——安装java环境并跑起来tomcat
234 0
|
Ubuntu Oracle Java
Linux|如何安装 Java
Linux|如何安装 Java
1843 1

热门文章

最新文章