歡迎使用 WRLCC 自動寄信系統
您好,歡迎使用 WRLCC 自動寄信系統。本服務由 151-NAS 提供,
採用 Gmail 的 SMTP 機制實現 自動化寄信 功能,
無須自行搭建傳統的 SMTP / POP3 郵件伺服器,便能快速整合到您的網站、系統或 APP。
本系統支援 GET / POST 兩種請求方式來觸發寄信,
並內建 AES-256高強度加密 機制,確保您傳輸的內容與帳號安全不外洩。
透過簡單的 API 呼叫,即可完成會員通知、訂單提醒、驗證信、即時訊息推送等多種應用。
本服務特色包含:
- 高安全性:使用 Google 應用程式密碼與 AES 加密技術,防止密碼與訊息外洩。
- 高相容性:支援任何系統或平台,且提供多語法的AES加密程式,包括 PHP、Node.js、JS。
- 多樣化寄信模式:支援 GET / POST 觸發、AES 加密傳輸,以及 VOIP 觸發通知。
- 快速部署:免安裝額外郵件伺服器,僅需設定一次,即可立即使用。
- 測試與驗證工具:內建 GET/POST 測試、AES加密驗證測試,方便開發者除錯與驗證。
WRLCC 自動寄信系統是一個 快速、方便、自動化 寄信工具,可協助企業、 開發者或個人快速建立 可靠、安全、自動化 的電子郵件通知機制。
何謂 Google 應用程式密碼?如何取得 Google 應用程式密碼?
Google 應用程式密碼是一組 16 位密碼,替代 Gmail 原始密碼使用於第三方程式登入,以確保Google 帳號安全;且Google 應用程式密碼有唯一性及二階段式驗證(2FA),無論呼叫或申請都有一定的安全性。
取得 Google 應用程式密碼:
步驟一 登入您的 Google 帳號
步驟二 管理你的 Google 帳戶
步驟三 安全性
步驟四 兩步驟驗證
步驟五 應用程式密碼
步驟六 輸入 該應用程式密碼的用途(自訂)
步驟七 複製 Google 應用程式密碼
本服務呼叫方式:
- GET 寄信
- POST 寄信
- AES-GET 寄信
- AES-POST 寄信
- JSON 寄信 (僅適用於VOIP 網路電話系統)
GET 參數
- rn:收件人姓名
- re:收件人電子信箱
- sn:寄件人姓名
- se:寄件人 Gmail 電子信箱
- sp:寄件人 Google 應用程式密碼
- mt:信件主旨
- mb:信件內文
POST 參數
- rn:收件人姓名
- re:收件人電子信箱
- sn:寄件人姓名
- se:寄件人 Gmail 電子信箱
- sp:寄件人 Google 應用程式密碼
- mt:信件主旨
- mb:信件內文
AES-GET 參數
*為加密後的密文
- rn:收件人姓名*
- re:收件人電子信箱*
- sn:寄件人姓名*
- se:寄件人 Gmail 電子信箱*
- sp:寄件人 Google 應用程式密碼*
- mt:信件主旨*
- mb:信件內文*
- auth: API數值 (無須加密)
AES-POST 參數
*為加密後的密文
- rn:收件人姓名*
- re:收件人電子信箱*
- sn:寄件人姓名*
- se:寄件人 Gmail 電子信箱*
- sp:寄件人 Google 應用程式密碼*
- mt:信件主旨*
- mb:信件內文*
- auth: API數值 (無須加密)
JSON 參數
事件上報(觸發條件:來電通知、發話通知)
- $answer_state : RINGING/ANSWER/HANGUP
- $caller_username : 主叫用戶名
- $caller_number : 主叫號碼
- $callee_number : 目的號碼
- $sn : 設備序號
- $mac : MAC位址
- $ip : WAN IP地址(路由模式)或 LAN IP地址(橋接模式)
- $key : 驗證碼
- $time : 本地日期/時間,年-月-日 時:分:秒
- $epochtime : Unix時間戳
SIP狀態(觸發條件:SIP Phone離線/上線)
- $username : SIP用戶帳號
- $network_address : SIP分機註冊位址,IP:端口
- $agent : SIP用戶代理
- $sip_status : SIP分機狀態, REGISTER/UNREGISTER
- $sn : 設備序號
- $mac : MAC位址
- $ip : WAN IP地址(路由模式)或 LAN IP地址(橋接模式)
- $key : 驗證碼
- $time : 本地日期/時間,年-月-日 時:分:秒
- $epochtime : Unix時間戳
AES 加密程式
PHP版本:
function encode($str, $key) {
$method = 'AES-256-CBC';
$ivLength = openssl_cipher_iv_length($method);
$iv = openssl_random_pseudo_bytes($ivLength);
$encrypted = openssl_encrypt($str, $method, $key, 0, $iv);
$output = base64_encode($iv . $encrypted);
return $output;
}
Node.js版本:
const crypto = require("crypto");
function encode(str, key) {
const algorithm = "aes-256-cbc";
const iv = crypto.randomBytes(16);
const cipher = crypto.createCipheriv(algorithm, crypto.createHash("sha256").update(key).digest(), iv);
let encrypted = cipher.update(str, "utf8", "binary");
encrypted += cipher.final("binary");
const output = Buffer.concat([iv, Buffer.from(encrypted, "binary")]).toString("base64");
return output;
}
JavaScript版本:
使用前須引入CrytoJS函式庫:
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
function encode(str, key) {
const iv = CryptoJS.lib.WordArray.random(16);
const encrypted = CryptoJS.AES.encrypt(str, CryptoJS.SHA256(key), {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
const ivCipher = iv.concat(encrypted.ciphertext);
return CryptoJS.enc.Base64.stringify(ivCipher);
}
觸發寄信程式碼
* 若為AES加密版本,需透過encode(str, key)函式進行加密
PHP版本(GET):
$params = array(
'rn' => $rn,*
're' => $re,*
'sn' => $sn,*
'se' => $se,*
'sp' => $sp,*
'mt' => $mt,*
'mb' => $mb,*
'auth' => $auth //如果為AES加密版本,才需加上此參數
);
// 組成完整 URL
$url = 'http://mail.wrlcc.synology.me/send.php?' . http_build_query($params);
// 建立 GET 請求(加上 timeout 避免阻塞)
$options = [
'http' => [
'method' => 'GET',
'timeout' => 5
]
];
$context = stream_context_create($options);
// 發送 GET 請求
$response = @file_get_contents($url, false, $context);
PHP版本(POST):
$postData = http_build_query(
array(
'rn' => $rn,*
're' => $re,*
'sn' => $sn,*
'se' => $se,*
'sp' => $sp,*
'mt' => $mt,*
'mb' => $mb,*
'auth' => $auth //如果為AES加密版本,才需加上此參數
)
);
$options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postData ) );
$context = stream_context_create($options);
file_get_contents('http://mail.wrlcc.synology.me/send.php', false, $context);
Node.js版本(GET):
import fetch from "node-fetch"; // 若使用 Node.js 18+ 可省略這行
const params = new URLSearchParams({
rn: rn,*
re: re,*
sn: sn,*
se: se,*
sp: sp,*
mt: mt,*
mb: mb,*
auth: auth // 如果為 AES 加密版本,才需加上此參數
});
const url = `http://mail.wrlcc.synology.me/send.php?${params.toString()}`;
try {
const response = await fetch(url, {
method: "GET",
timeout: 5000 // 5秒 timeout
});
const text = await response.text();
console.log("伺服器回應:", text);
} catch (error) {
console.error("連線錯誤:", error);
}
Node.js版本(POST):
import fetch from "node-fetch"; // 若使用 Node.js 18+ 可省略這行
const formData = new URLSearchParams({
rn: rn,*
re: re,*
sn: sn,*
se: se,*
sp: sp,*
mt: mt,*
mb: mb,*
auth: auth // 如果為 AES 加密版本,才需加上此參數
});
try {
const response = await fetch("http://mail.wrlcc.synology.me/send.php", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: formData.toString(),
timeout: 5000 // 5秒 timeout
});
const text = await response.text();
console.log("伺服器回應:", text);
} catch (error) {
console.error("連線錯誤:", error);
}
如何測試寄信功能?
Q&A 問答
-
Q: 我忘記應用程式密碼怎麼辦?
A: 只能重新設定一組新的應用程式密碼。 -
Q: WRLCC 自動寄信系統需要收費嗎?
A: 本服務總共提供 5 種版本的寄信服務,其包含GET寄信、POST寄信、AES-GET寄信、AES-POST寄信、JSON寄信,僅AES-GET/AES-POST及JSON會進行酌收會員費(每月酌收),每組帳號僅能生成3組API。 -
Q: GET、POST 版本與 AES-GET、AES-POST 版本差異在哪?
A: 差別在AES版本在觸發本服務時,其收件人資訊、寄件人資訊、信件標題與內文皆事先透過AES加密,本服務在寄出時,進行AES解密並將該信件傳送給Gmail,再由Gmail寄出信件給用戶,過程會相對前兩個版本更為安全。 -
Q: 我該如何將資訊透過 AES 加密程式來進行加密?
A: 購買會員後,本服務將提供AES加密程式(PHP/JS 雙版本),您可以透過呼叫的方式來進行加密。 -
Q: WRLCC 自動寄信系統能寄出類似HTML的郵件嗎?
A: 本服務支援HTML格式的郵件,您可以在信件內文(mb)中,套用html語法即可。 -
Q: 我們該如何觸發 WRLCC 自動寄信系統?
A: 您可以透過Form表單寄出時觸發,或透過AJAX觸發特定網址(GET/POST)來寄出您的信件。 -
Q: 本服務可以讓我應用在哪些地方或場景?
A: 您可以使用在 登入提醒信、二段式登入驗證信、註冊驗證信、顧客滿意度轉發雇主信箱、顧客留言轉發至雇主信箱、廣告信、會員通知信等情境,只要需要E-Mail寄信的情境,本服務都能做到。 -
Q: 市場上的推播系統 與 WRLCC 自動寄信系統,兩者有何差異?
A: WRLCC自動寄信系統是屬於推播系統的一環,所謂的推播系統,涵蓋了E-Mail、簡訊、LINE、手機APP等多種方式進行通知、驗證。 -
Q: 何謂 JSON 寄信?
A: 部分系統(如VOIP系統),在事件觸發時,僅能呼叫特定網址,其過程無法夾帶URL參數,僅能夾帶JSON參數,則本服務將透過其中參數(LAN MAC)來辨識是否為本服務用戶呼叫,再透過其他參數完成寄信服務。 -
Q: JSON 寄信需要設定哪些項目?
A: JSON 寄信需設定「收件人姓名」、「收件人信箱」、「寄件人姓名」、「寄件人信箱」、「寄件人應用程式密碼」、「VoIP 閘道/Server LAN MAC位址」、「VoIP 系統名稱」,並確認您的VoIP 系統支援「寄送JSON格式」及「包含所需參數」,即可正常使用。 -
Q: JSON 寄信目前支援那些系統?
A: 經測試,目前支援 Dinstar 的 VOIP 網路電話系統。