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

相关文章
|
4月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
418 5
|
4月前
|
Java 数据处理 API
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
303 115
|
4月前
|
安全 Java 编译器
为什么你的Java代码需要泛型?类型安全的艺术
为什么你的Java代码需要泛型?类型安全的艺术
219 98
|
4月前
|
安全 Java 容器
告别空指针噩梦:Optional让Java代码更优雅
告别空指针噩梦:Optional让Java代码更优雅
439 94
|
4月前
|
Java 编译器 API
java最新版和java8的区别,用代码展示
java最新版和java8的区别,用代码展示
383 43
|
4月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
369 10
|
4月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
4月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
525 8
|
4月前
|
存储 监控 安全
阿里云渠道商:云服务器价格有什么变动?
阿里云带宽与存储费用呈基础资源降价、增值服务差异化趋势。企业应结合业务特点,通过阶梯计价、智能分层、弹性带宽等策略优化成本,借助云监控与预算预警机制,实现高效、可控的云资源管理。
|
4月前
|
弹性计算 运维 安全
区别及选择指南:阿里云轻量应用服务器与ECS云服务器有什么区别?
阿里云轻量应用服务器适合个人开发者、学生搭建博客、测试环境,易用且性价比高;ECS功能更强大,适合企业级应用如大数据、高流量网站。根据需求选择:轻量入门首选,ECS专业之选。
327 2

热门文章

最新文章