自建 Joplin Server 配置邮件服务
Joplin 是一款极好用的笔记软件,详细的就不介绍了,自行 Bing 即可。它提供了多种同步方式,但是最方便的,莫过于自己搭建 Joplin Server 服务了,不用通过第三方,将数据牢牢掌控在自己手中,并且通过自建的 Joplin Server,还可以对笔记进行在线分享(拥有自己搭建的云笔记平台可是件很酷的事情)。
具体怎么搭建我也不说了,官方镜像上都有介绍,打不开的也可以 Bing 一下。这是 docker-compose.yml 的案例链接:https://github.com/laurent22/joplin/blob/dev/docker-compose.server.yml
如何将部署好的服务开放到外网也不谈了,这是另一个领域了。
聚焦到本次问题,不论是官方介绍,还是网上的教程,基本都是安装完了直接使用 Admin 账号进行同步,个人平时使用无影响。但是碰到需要新建用户需要邮件确认,或者忘记密码需要邮件找回时,就比较麻烦了。 通过查看源码的 env.ts 配置,可以发现里面提供了很多的参数配置,并且还有默认设置说明。其中里面是有邮件相关配置的。
这样就好办了,只需要搭一套邮件服务,再进行配置,就可以实现发送邮件的功能了,具体就不详细说了,比较懒,直接上 docker-compose 吧。
version: '3.7'
services:
app:
container_name: joplin-server
hostname: joplin-server
image: joplin/server:2.12.1-beta
restart: unless-stopped
ports:
- 19711:22300
depends_on:
- db
- smtp
environment:
# global
- TZ=Asia/Shanghai
- APP_NAME=huangzz's note
- APP_PORT=22300
- APP_BASE_URL=https://***.huangzz.xyz
# db config
- DB_CLIENT=pg
- POSTGRES_PASSWORD='********'
- POSTGRES_USER=joplin
- POSTGRES_DB=joplin
- POSTGRES_PORT=5432
- POSTGRES_HOST=db
# smtp config
- MAILER_ENABLED=true
- MAILER_HOST=smtp
- MAILER_PORT=25
- MAILER_SECURITY=MailerSecurity.None
- MAILER_AUTH_USER=''
- MAILER_AUTH_PASSWORD=''
- MAILER_NOREPLY_NAME=noreply
- MAILER_NOREPLY_EMAIL=noreply@huangzz.xyz
volumes:
- /etc/localtime:/etc/localtime:ro
networks:
- joplin
db:
container_name: joplin-server-db
hostname: joplin-server-db
image: postgres:15
volumes:
- /volume1/docker/JoplinServer/postgres:/var/lib/postgresql/data
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- POSTGRES_PASSWORD='********'
- POSTGRES_USER=joplin
- POSTGRES_DB=joplin
networks:
- joplin
smtp:
container_name: joplin-server-smtp
hostname: joplin-server-smtp
image: namshi/smtp
restart: always
environment:
TZ: Asia/Shanghai
RELAY_NETWORKS: ':0.0.0.0/0'
networks:
- joplin
networks:
joplin:
driver: bridge
ipam:
driver: default
config:
- subnet: 87.188.94.0/24
按上面的 docker-compose 启动后,就可以正常接收邮件了,由于是自建服务器,发送的邮件可能在垃圾箱或被拦截。也可把相关参数,改成QQ邮箱或其他云邮箱的,这里就不作详细介绍了。