要改成用php發送郵件, 首先要安裝 phpmailer, 執行
$ composer require phpmailer/phpmailer
出現錯誤如下
08126-peiq3jt098k.png

之前項目應該沒初始化過先跑初始化, 所以先執行composer初始化

$ composer install

出現不少錯誤, 後來發現安裝的 composer 版本太高, composer 2.7.9 已經不支持 php 7.4
改回去使用 composer 1 發現版本太低 repo 都不支持, 改用 composer 1.10.27
13168-1raq7jptfy8.png

在這邊下載 composer.phar
41622-o2jbwpwsbi.png

下載後將 composer.phar 放在 composer1.0.27 目錄下, 並新增 composer.bat 在同目錄下, 編輯內容如下:

@echo OFF
: in case DelayedExpansion is on and a path contains !
setlocal DISABLEDELAYEDEXPANSION
php "%~dp0composer.phar" %*

設定 composer 到環境設定 path 下
C:\Users\joker\Downloads\composer1.0.27

在cmd查看版本
$ composer -V
Composer version 1.10.27 2023-09-29 10:50:23

安裝時遇到PHP版本太新的問題, 到 path 裡面修改成 php5.4 的版本, 確認版本調整到 5.4
55461-4yn6waf9ows.png

安裝時遇到擴展問題
08082-6kyznxoiyqm.png

找到 php.ini 開啟 gd 擴展
45055-qpr6yv32bif.png

最後安裝還是發現 repo 不支持 composer1 版本, 試了幾個都不行, 後來發現華為靜像支持
https://mirrors.huaweicloud.com/repository/php

$ composer config -g repo.packagist composer https://mirrors.huaweicloud.com/repository/php

再執行安裝, 通過了
$ composer require phpmailer/phpmailer:*
21910-5xup7g4wgif.png

php發送代碼如下

$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host       = 'smtp.gmail.com';
$mail->SMTPAuth   = true;
$mail->Username   = 'jokerjkeeper@gmail.com';
$mail->Password   = '**** '**** '**** '****';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->Port       = 465;
$mail->Timeout    = 5;
$mail->setFrom(''****@gmail.com', 'Mailer');
$mail->addAddress($email, 'Joe User');

//Content
$mail->isHTML(true);        
$mail->CharSet = "utf-8";                              
$mail->Subject = '歡迎使用'****'; //'验证你的电子邮件';
$mail->Body    = '歡迎使用'****';
$mail->send();
45 次阅读 阅读全文

Android 14 SDK API level 34

Android 13 SDK API level 33

Android 12L SDK API level 32

Android 12 SDK API level 31

Android 11 SDK API level 30

Android 10 SDK API level 29

Android 9 SDK API level 28

Android 8.1 SDK API level 27

Android 8.0 SDK API level 26

Android 7.1.1 SDK API level 25

Android 7.0 SDK API level 24

Android 6.0 SDK API level 23

Android 5.1 SDK API level 22

Android 5.0 SDK API level 21

Android 4.4w SDK API level 20

Android 4.4 SDK API level 19

Android 4.3 SDK API level 18

Android 4.2 SDK API level 17

Android 4.1 SDK API level 16

Android 4.0.3 SDK API level 15

Android 4.0 SDK API level 14

Android 3.2 SDK API level 13

Android 3.1 SDK API level 12

Android 3.0 SDK API level 11

Android 2.3.3 SDK API level 10

Android 2.3 SDK API level 9

Android 2.2 SDK API level 8

Android 2.1 SDK API level 7

Android 2.0.1 SDK API level 6

Android 2.0 SDK API level 5

Android 1.6 SDK API level 4

Android 1.5 SDK API level 3

Android 1.1 SDK API level 2

Android 1.0 SDK API level 1

43 次阅读 阅读全文

安裝 apidoc

$ npm install -g apidoc

在 test 目錄下新增 testapi 子目錄, 新增腳本

var Timer = module.exports;

/***********************************
$ cd /d G:\OlgCase\QZ\Capybara\server\apidoc>
$ apidoc -i ..\tests\testapi\ -o D:\temp\apidocs2
***********************************/

/**
 * @apiDefine Err
 *
 * @apiError Err 有些错误发生,具体查看错误码描述
 *
 * @apiErrorExample Error-Response:
get_connector_s2c
{
    msgId = 502;
    errorCode = 0;
    causeMsgId = -1; //引起错误的消息id
    errorMsg = '';
}
 */


/**
@api {socket} get_connector_c2s 获取登入服地址
@apiVersion 1.0.0
@apiName get_connector_c2s
@apiGroup 002.login
@apiDescription 通过网关获取登入服地址
@apiParamExample {json} Request-Example:
get_connector_c2s
{
    msgId = 501;
    userId = '';
}
@apiSuccessExample {json} Success-Response:
get_connector_s2c
{
    msgId = 502;
    ip = '';
    port = '';
}

@apiUse Err
 */
Proto.get_connector_c2s = function() {
    this.msgId = 501;
    this.userId = '';
};

Proto.get_connector_s2c = function() {
    this.msgId = 502;
    this.ip = '';
    this.port = '';

};

輸出apidoc

$ apidoc -i ..\tests\testapi\ -o D:\temp\apidocs2

最終輸出效果如下
61354-ra5s2czrvxk.png

45 次阅读 阅读全文

首先要去google 開通兩部驗證
37987-ws94zwqrcwp.png

接著在上面搜索裡面輸入 "應用程式"
65282-0enukcpe1h2s.png

輸入"官網"點建立
72804-69ere9k413x.png

彈出應用程式密碼
11032-vn0jauqocnh.png

$ npm install nodemailer
$ npm install nodemailer-smtp-transport

接下來就是功能

const FROM = 'aaa@gmail.com';
const TO = 'bbb@msn.com';

const transport = nodemailer.createTransport(smtpTransport({
    host: 'smtp.gmail.com', // 服务 由于我用的163邮箱
    port: 465, // smtp端口 默认无需改动
    secure: true,
    auth: {
      user: FROM, // 用户名
      pass: 'xxxxxx' // SMTP授权码
    }
}));

//驗證郵箱合理
if (regEmail.test(TO)){
  let code = randomFns()
  transport.sendMail({
    from: FROM, // 發件郵箱
    to: TO, // 收件列表
    subject: '驗證你的電子郵件', //標題
    html: `
    <p>你好!</p>
    <p>你正在註冊Cocabear社區帳號</p>
    <p>你的驗證碼是:<strong style="color: #ff4e2a;">${code}</strong></p>
    <p>***該驗證碼5分鐘内有效***</p>` // html 内容
  }, 
  function(error, data) {
    console.error("error:", error);
    assert(!error,500,"發送驗證碼錯誤!")
    transport.close();
  })
  //後續工作
  console.log("send success");
}else{
    assert(false,422,'請輸入正確郵件格式!')
}

33666-i9le4i9bhot.png

測試後可以發給外郵

40 次阅读 阅读全文

最近要開發登入系統, 需要用到郵箱作驗證, 首先去qq郵箱開通smtp服務, 點 "設置" -> "帳號"
71894-50qtt9i4ovx.png

然後把smtp服務給開啟
35129-gd4h0xxdctg.png

接著點管理服務, 然後在"安全設置"中生成授權碼
18381-um6usahrivk.png

生成的授權碼無法再次查看, 要記得保存下來, 後面會用到
07263-54kpgcbgnb.png

然後回到node開發對應功能, 需要先安裝兩個套件

$ npm install nodemailer
$ npm install nodemailer-smtp-transport

接下來就是功能

const transport = nodemailer.createTransport(smtpTransport({
    host: 'smtp.qq.com', // qq smtp 地址
    port: 465, // smtp默認端口
    secure: true,
    auth: {
      user: '1300000000@qq.com', // 郵箱用戶名
      pass: 'fexxxxxxxxxx' // SMTP授權碼
    }
}));

const FROM = '1300000000@qq.com';
const TO = '1300000000@qq.com';

//驗證郵箱合理
if (regEmail.test(TO)){
  let code = randomFns()
  transport.sendMail({
    from: FROM, // 發件郵箱
    to: TO, // 收件列表
    subject: '驗證你的電子郵件', //標題
    html: `
    <p>你好!</p>
    <p>你正在註冊Cocabear社區帳號</p>
    <p>你的驗證碼是:<strong style="color: #ff4e2a;">${code}</strong></p>
    <p>***該驗證碼5分鐘内有效***</p>` // html 内容
  }, 
  function(error, data) {
    console.error("error:", error);
    assert(!error,500,"發送驗證碼錯誤!")
    transport.close();
  })
  //後續工作
  console.log("send success");
}else{
    assert(false,422,'請輸入正確郵件格式!')
}

85595-vswp2y548cf.png

但需要注意的是qq smtp只能發給同樣qq郵箱, 不能發給外郵

39 次阅读 阅读全文