郵件服務配置(虛擬域&虛擬用戶)

来源:https://www.cnblogs.com/somata/archive/2019/07/27/11255506.html
-Advertisement-
Play Games

搭建郵件系統,使用MariaDB作為資料庫,實現虛擬用戶和虛擬域。 ...


郵件服務配置(虛擬域&虛擬用戶)

本文首發:https://www.cnblogs.com/somata/p/VirtualMailServerConfig_MariaDB.html

現在我做的是:
Linux + httpd + php + mariadb + postfix + dovecot + phpMyAdmin + postfixadmin + roundcubemail

這裡我將會講解 如何製作基於 虛擬域和虛擬用戶 的郵件服務。需要的軟體如下:

這裡我已經整理好了 https://pan.baidu.com/s/1TT2EUGRnU2tqaiUwRsPUMQ 提取碼:0i6x

再整理好需要的軟體之後。 我們開始搭建郵件服務。

關閉selinux

郵件服務有太多的許可權要求,為了方便配置, 直接關閉selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config    # 使用這條命令進行修改
reboot    # 重啟電腦使其生效

配置yum源,然後開始安裝軟體

修改yum源

mkdir /root/back    # 建立備份目錄
mv /etc/yum.repos.d/* /root/back/    # 將預設配置移動到備份目錄
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo    # 下載基礎yum源
curl -o /etc/yum.repos.d/CentOS-Epel.repo http://mirrors.aliyun.com/repo/epel-7.repo    # 下載擴展yum源
yum makecache    # 建立緩存

安裝軟體

yum install httpd mod_ssl mariadb mariadb-server php dovecot dovecot-mysql vim wget nc php-xml php-mbstring php-mysql php-mcrypt php-imap php-intl php-ldap php-gd bash-completion bash-completion-extras bind bind-utils

配置LAMP環境,同時裝載phpMyAdmin

啟動lamp環境

systemctl enable httpd
systemctl enable mariadb
systemctl start httpd
systemctl start mariadb

初始化資料庫:

mysql_secure_installation


開啟防火牆

firewall-cmd --add-service=http    # 臨時開啟防火牆,允許http服務通過
# 臨時防火牆再重啟後就會失效。 後面會配置永久生效

上傳phpMyAdmin-3.4.3-all-languages.tar.xz, 上傳方法 和 過程 省略

# 切換到上傳目錄
tar -xf phpMyAdmin-3.4.3-all-languages.tar.xz    # 解壓web程式
mv phpMyAdmin-3.4.3-all-languages /var/www/html/ # 移動到web
根目錄下
ln -s phpMyAdmin-3.4.3-all-languages phpMyAdmin    # 創建一個軟連接便於訪問
cd phpMyAdmin    # 切換到phpMyAdmin目錄
cp config.sample.inc.php  config.inc.php    # 複製配置文件
openssl rand -base64 32    # 生成一串隨機數, 然後需要導入到配置文件中。 自行複製
vim config.inc.php    # 編輯配置文件


這樣phpMyAdmin 就可以正常訪問了

裝載postfixadmin

同樣的先上傳postfixadmin。

# 切換到上傳目錄
tar -xf postfixadmin-3.2.tar.gz    # 解壓文件
mv postfixadmin-3.2 /var/www/html/    # 移動到web根目錄
ln -s postfixadmin-3.2/public/ postfixadmin    # 創建軟連接便於訪問

後面的步驟開始初始化postfixadmin。 如有疑問, 請查看 postfixadmin-3.2/INSTALL.TXT

創建資料庫用戶

通過phpMyAdmin 創建用戶


配置用戶信息。然後新建用戶。 即可

通過命令行完成配置

mysql -uroot -p123456    # mysql 通過客戶端配置資料庫。 -p 後面直接跟密碼

create database postfix;
GRANT ALL ON postfix.* TO 'postfix'@'localhost' IDENTIFIED BY 'postfixadmin';    # 設定許可權, 由於沒有檢測到用戶。所以同時創建用戶
FLUSH PRIVILEGES;    # 刷新許可權

創建和編輯配置文件

# 切換到postfixadmin 的根目錄
# cd /var/www/html/postfixadmin-3.2/
vim config.local.php    # 編輯新建配置文件。 然後輸入以下內容
<?php
$CONF['database_type'] = 'mysqli';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfixadmin';
$CONF['database_name'] = 'postfix';

$CONF['configured'] = true;
?>
vim config.inc.php    # 編輯第二個配置文件

找到,並修改如下內容

$CONF['configured'] = true;

$CONF['default_language'] = 'cn';

$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = 'postfixadmin';
$CONF['database_name'] = 'postfix';

$CONF['admin_email'] = 'root@localhost';

這樣就完成了postfix的基礎配置

還有, 需要創建一個緩存目錄

mkdir templates_c    # 創建緩存目錄
chown -R apache:apache templates_c    # 更改屬主組

進入postfix配置界面,繼續完成配置

進入setup.php完成配置。

然後拉到底。 添加以下setup.php的密碼

然後創建管理員用戶。

然後出現如下提示,即為成功:

然後登入賬戶。


新建somata.com域

創建用戶

創建用戶mail1 和 mail2


提示如下,即為成功

那麼到此為止, postfixadmin 的配置就已經完成了。 後面會開始 postfix 和 dovecot 的服務配置。

註意: 以上創建域 和 用戶 等 其實都是存儲在資料庫當中,並非真是存在的用戶。 所以我們需要通過配置postfix 和 dovecot 通過讀取資料庫中的信息來完成配置。

配置DNS伺服器

這裡我使用bind 來做DNS伺服器。
DNS 我就不多解釋了。直接上配置文件
配置/etc/named.conf

options {
        listen-on port 53 { any; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
        recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
        managed-keys-directory "/var/named/dynamic";
        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};
zone "." IN {
        type hint;
        file "named.ca";
};
zone "somata.com" IN {
        type master;
        file "named.somata.com";
};

配置/var/named/named.somata.com

$TTL 1D
somata.com.     IN SOA  ns.somata.com. root.somata.com. (
                                        2019052701      ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      ns.somata.com.
        MX 10   mail.somata.com.
ns      A       172.16.102.141
mail    A       172.16.102.141
www     A       172.16.102.141

啟動named

chgrp named /var/named/named.somata.com
systemctl restart named
firewall-cmd --add-service=dns

配置postfix

postfixadmin中 也介紹瞭如何配置postfix, 他的介紹在這裡DOCUMENTS/POSTFIX_CONF.txt 如果沒有看懂我接下來的步驟,可以嘗試去看看這個文件

添加用於讀取和寫入郵件用的用戶:

groupadd -g 2000 vmail
useradd -r -u 2000 -g 2000 -d /var/spool/mail/vmail -c "Virtual mail user" vmail
# 這裡還是需要註意。 UID必須超過1000, 我也不知道為什麼。

配置/etc/postfix/main.cf

queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
# 配置主機名等信息
myhostname = mail.somata.com
mydomain = somata.com
myorigin = $mydomain
# 配置監聽埠
inet_interfaces = all
inet_protocols = ipv4
# 配置接受的域列表。 註意這裡絕對不能添加與虛擬域相同的功能變數名稱。否則會導致郵件無法發送。
mydestination = $myhostname, localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP $mail_name
debug_peer_level = 2
debugger_command =
     PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
     ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
# 以下是虛擬用戶配置
# 設置postfix 讀取和寫入是的uid 和 gid
virtual_gid_maps = static:2000
virtual_uid_maps = static:2000
# 虛擬域, 這裡配置通過mysql來實現。 這裡指定的文件 後面就會創建
virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
# 虛擬域中,的別名設置
virtual_alias_maps =
   proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
   proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
   proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
# 虛擬域中,用戶郵箱設置
virtual_mailbox_maps =
   proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf,
   proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
# 設置基本路徑。 上面查詢到的郵箱地址是相對的。所以需要設置基本路徑來確認郵箱位置。
virtual_mailbox_base = /var/mail/vmail
# 以上的這些虛擬化配置其實還可以簡化為如下。同樣可以使用,但是缺少了別名的功能
#virtual_gid_maps = static:2000
#virtual_uid_maps = static:2000
#virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
#virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf
#virtual_mailbox_base = /var/mail/vmail

# 用戶認證配置。 smtp 可以不用設置用戶認證。也能使用
# 拒絕非正常的客戶端
broken_sasl_auth_clients = yes
# 啟用sasl認證
smtpd_sasl_auth_enable = yes
# 配置認證方式為dovecot
smtpd_sasl_type = dovecot
# 配置認證套接字的相對路徑
smtpd_sasl_path = private/auth
# 配置拒絕規則
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination,reject_unknown_sender_domain
# permit_mynetworks    允許本地網路發送郵件
# permit_sasl_authenticated    允許通過認證的用戶發送郵件
# reject_unauth_destination    拒絕不是發往本地的郵件
# reject_unknown_sender_domain    拒絕未知發件功能變數名稱

然後我們通過postfixadmin提供的腳本生成以上虛擬域所需要的文件
切換到postfix的安裝目錄,執行如下命令
su nobody -s /bin/bash -c 'bash POSTFIX_CONF.txt'

然後這裡會返迴文件路徑,我們進入腳本創建的目錄,複製到指定目錄

mkdir /etc/postfix/sql
cp /tmp/postfixadmin-D4SOxG/* /etc/postfix/sql/

配置dovecot

postfixadmin 也提供了的 dovecot的配置方法:DOCUMENTS/DOVECOT.txt 如果我的配置沒有看懂可以選擇查看

先配置第一個文件dovecot.conf

protocols = pop3 imap    # 開啟pop3 和 imap 服務
listen = *    # 監聽ipv4埠

然後配置第二個文件conf.d/10-auth.conf

disable_plaintext_auth = no    # 設置關閉強制加密認證
auth_mechanisms = plain login    # 設置認證方法
#!include auth-system.conf.ext    # 註釋使用auth-system的認證方式
!include auth-sql.conf.ext    # 使用auth-sql的認證方式

配置第三個文件conf.d/10-mail.conf

mail_location = maildir:/var/mail/vmail/%d/%n    # 設置郵箱格式
first_valid_uid = 2000    # 設置讀取和寫入的uid  下麵使gid
first_valid_gid = 2000

配置第三個文件conf.d/10-ssl.conf

ssl = no    # 取消ssl加密    註釋下麵內容
#ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
#ssl_key = </etc/pki/dovecot/private/dovecot.pem

配置第四個文件conf.d/10-master.conf

  unix_listener /var/spool/postfix/private/auth {    # 為postfix 提供認證服務套接字
    mode = 0666    # 設置許可權
    user = postfix    # 設置屬主
    group = postfix    # 設置屬組
  }

配置第五個文件dovecot-sql.conf.ext

driver = mysql    # 設置驅動為mysql
default_pass_scheme = MD5-CRYPT    # 設置加密方法為MD5
connect = host=localhost dbname=postfix user=postfix password=postfixadmin    # 設置連接參數
password_query = SELECT username AS user,password FROM mailbox WHERE username = '%u' AND active='1'    # 設置查詢密碼的sql語句
user_query = SELECT CONCAT('/var/mail/vmail/', maildir) AS home, 2000 AS uid, 2000 AS gid, CONCAT('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u' AND active='1'    # 設置查詢用戶和郵箱的sql語句

測試是否可以使用

添加臨時防火牆

firewall-cmd --add-service=pop3
firewall-cmd --add-service=smtp
firewall-cmd --add-service=dns

配置mariadb 記錄 日誌, 用於查看是否正常。 如果有問題先看看/var/log/mariadb/access.log 中的查詢請求是否正常。

[mysqld]
log=/var/log/mariadb/access.log
systemctl restart mariadb

然後我們使用foxmail 來測試 服務是否可用。


這裡我們也可以看到,收到了郵件,完全可以使用了。

裝載webmail

這裡我使用了roundcubemail, 下麵是配置步驟。

tar -xf roundcubemail-1.3.9-complete.tar.gz    # 解壓roundcubemail
mv roundcubemail-1.3.9 /var/www/html/        # 移動
cd /var/www/html/        # 切換目錄
ln -s roundcubemail-1.3.9 webmail    # 創建一個軟連接 方便訪問

與 postfix 相同, 進入 phpMyAdmin 或者 命令行。 創建資料庫用戶

然後進入安裝界面, 這裡先確認環境是否可以使用

然後拉到底,點擊next

到了第二步。 配置 config

  1. 配置資料庫
  2. 配置imap
  3. 設置語言 和 主題

    最後點擊 CREATE CONFIG

然後根據提示將返回內容保存至指定位置

vim /var/www/html/webmail/config/config.inc.php    # 編輯這個文件。 然後複製上圖的內容即可。


最後回到登入界面。 使用郵件賬號登入即可。

用戶界面如下, roundcube 還是挺好看。而且挺好用的:

安全配置

上面的所有步驟都已經配置完成了,那麼現在就開始安全方便的配置。 比如說這些服務如果是明文傳輸肯定是會泄露的。所以都需要配置SSL。 然後還需要配置防火牆,禁止連接其餘埠。

  1. httpd 的SSl 配置
    這裡我們已經安裝了mod_ssl 。 而且mod_ssl 已經為我們提供了預設的配置。 所以我們只需要修改以下使用的密鑰即可。

這裡我在自己的伺服器上使用openssl做了一個證書伺服器。 並且已經為測試主機安裝了證書 。 操作步驟就省略了。

# 創建證書
openssl genrsa -out private/postfix.pem 2048    # 創建密鑰
openssl req -new -key private/postfix.key -out postfix.csr    # 創建證書申請
openssl ca -in postfix.csr -out certs/postfix.crt -days 365    # 使用證書服務簽發證書

編輯文件/etc/httpd/conf.d/ssl.conf
主要修改如下2點:

SSLCertificateFile /etc/pki/tls/certs/postfix.crt
SSLCertificateKeyFile /etc/pki/tls/private/postfix.key

編輯文件/etc/httpd/conf/httpd.conf

# URL重定向。 設置自動重定向到www.somata.com
<VirtualHost *:80>
   RewriteEngine on
   Rewritecond %{HTTPS} !=on
   RewriteRule ^(.*)?$ https://www.somata.com$1 [L,R]
</VirtualHost>
# 限制 postfixadmin 和 phpMyAdmin 的訪問許可權
<Directory "/var/www/html/postfixadmin-3.2/">
    Order allow,deny
    allow from 172.16.102.188/32
    deny from all
</Directory>
<Directory "/var/www/html/phpMyAdmin-3.4.3-all-languages/">
    Order allow,deny
    allow from 172.16.102.188/32
    deny from all
</Directory>
<Directory "/var/www/html/postfixadmin/">
    Order allow,deny
    allow from 172.16.102.188/32
    deny from all
</Directory>
<Directory "/var/www/html/phpMyAdmin/">
    Order allow,deny
    allow from 172.16.102.188/32
    deny from all
</Directory>

然後移除 幾個web程式的初始化 網頁

mv /var/www/html/postfixadmin-3.2/public/setup.php  /tmp/
mv /var/www/html/roundcubemail-1.3.9/installer/ /tmp/
mv /var/www/html/phpMyAdmin-3.4.3-all-languages/setup/ /tmp/
  1. postfix 配置支持SSL
    編輯/etc/postfix/main.cf
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.crt
smtpd_tls_key_file = /etc/pki/tls/private/postfix.key

然後再編輯/etc/postfix/master.cf

smtps     inet  n       -       n       -       -       smtpd    # 去除這一行的註釋即可
systemcl restart postfix    # 重啟postfix服務
  1. DOVECOT 支持SSL
    編輯/etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = </etc/pki/tls/certs/postfix.crt
ssl_key = </etc/pki/tls/private/postfix.key
systemctl restart dovecot    # 重啟dovecot服務
  1. 配置防火牆
firewall-cmd --permanent --add-service=dns
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=pop3s
firewall-cmd --permanent --add-service=smtps
firewall-cmd --reload    # 重載服務。 使其生效
  1. 取消日誌記錄
    編輯/etc/my.cnf
#log=/var/log/mariadb/access.log    # 註釋添加的內容
systemctl restart mariadb
  1. 配置開機自啟動
systemctl enable mariadb
systemctl enable httpd
systemctl enable dovecot
systemctl enable named
# postfix 再安裝的時候就已經使開機自啟動的了。無需再次配置

本文經「原本」原創認證,作者乾坤盤,訪問yuanben.io查詢【63P7QJPF】獲取授權信息。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、環境 1、 VMware虛擬機 2、 Linux系統(centos7) 安裝步驟: 1、 先安裝VMtools 2、 查看是否有openjdk,若有先將系統內的openJDK刪除(採用 rpm –e): 3、 配置下列環境變數(/etc/profile): export JAVA_HOME=jd ...
  • mac系統常用的軟體安裝工具就是homebrew 個人認為通過brew安裝比較簡單,下麵介紹下如何安裝 安裝和卸載homebrew 安裝 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install ...
  • 下麵介紹查看Linux伺服器CPU總核數的方法。 通過/proc/cpuinfo可查看CPU個數及總核數。 ...
  • 要設置許可權,就需要知道文件的一些基本屬性和許可權的分配規則。 在Linux中,ls命令常用來查看文件的屬性,用於顯示文件的文件名和相關屬性。 #ls -l 路徑 【ls -l 等價於 ll】 標紅的部分就是Linux的文檔許可權屬性信息。 Linux中存在用戶、用戶組和其他人概念,各自有不同的許可權,對於 ...
  • 對操作系統在電腦中的作用做了簡單介紹,介紹了Linux、GNU和Linux發佈版的關係,給出了在VirtualBox上安裝Ubuntu虛擬機的詳細步驟。 ...
  • 內部命令實際上是shell程式的一部分,其中包含的是一些比較簡單的linux系統命令,這些命令由shell程式識別併在shell程式內部完成運行,通常在linux系統載入運行時shell就被載入並駐留在系統記憶體中。內部命令是寫在bashy源碼裡面的,其執行速度比外部命令快,因為解析內部命令shell ...
  • linux文件基本屬性 為什麼:為了保護系統的安全性,linux引入訪問文件許可權 什麼樣:d rwx r-x r-x,從左向右用0-9這些表示(r為度,w為寫,x為執行) 0表示文件類型 1~3表示文件所有者擁有的許可權 4~6表示所有者同組擁有的許可權 7~9表示其他用戶擁有的許可權 d為目錄 -是文件 ...
  • 今天在一個linux群裡面閑逛的時候,突然看見一個憤青把自己的linux系統給 rm rf / 了 ,感覺很好玩就看了一下,突然我發現了有趣的事情! 我的朋友問我,這個為什麼顯示沒有刪除,我看了確實顯示為不能刪除,後來看了後面的英文提醒,發現顯示的居然是許可權不夠???這就很有趣了。 我回頭看了一眼用 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...