後台提供郵件傳送驗證碼服務

2021-10-04 23:29:00 字數 3463 閱讀 1685

我的部落格需要增加登入驗證碼,想通過郵件傳送驗證碼

希望提供乙個http服務,其他服務和程式語言不必再寫乙個發郵件的方法

,"郵箱授權碼,不是登入密碼"

,"[email protected]"

,"[email protected]"

)if err ==

nil w.

write([

]byte

(err.

error()

))}func

sendcaptcha

(code, addr, user, pass, form, to string

)error

defer c.

close()

buf :=

make([

]byte

,256

) n, err := c.

read

(buf)

if err !=

nil_

, err = c.

write([

]byte

("ehlo "

+ strconv.

formatint

(time.

now().

unix()

,10)+

"\r\n"))

if err !=

nil n, err = c.

read

(buf)

if err !=

nil_

, err = c.

write([

]byte

("auth login\r\n"))

if err !=

nil n, err = c.

read

(buf)

if err !=

nil tmp := base64.stdencoding.

encodetostring([

]byte

(user))_

, err = c.

write([

]byte

(tmp +

"\r\n"))

if err !=

nil n, err = c.

read

(buf)

if err !=

nil tmp = base64.stdencoding.

encodetostring([

]byte

(pass))_

, err = c.

write([

]byte

(tmp +

"\r\n"))

if err !=

nil n, err = c.

read

(buf)

if err !=

nil_

, err = c.

write([

]byte

("mail from:<"

+ form +

">\r\n"))

if err !=

nil n, err = c.

read

(buf)

if err !=

nil_

, err = c.

write([

]byte

("rcpt to:<"

+ to +

">\r\n"))

if err !=

nil n, err = c.

read

(buf)

if err !=

nil_

, err = c.

write([

]byte

("data\r\n"))

if err !=

nil n, err = c.

read

(buf)

if err !=

nil_

, err = c.

write([

]byte

("from:"

+ form +

"\nto:"

+ to +

"\nsubject:captcha\nmimi-version:1.0\r\n"

+"content-type: multipart/mixed; boundary=\"#boundary#\"\r\n\r\n"

+"content-transfer-encoding:7bit\r\n\r\n"

+"--#boundary#\r\n"

+"content-type: text/plain; charset=utf-8\r\n"

+"content-transfer-encoding: printable\r\n\r\n"))

if err !=

nil_

, err = c.

write([

]byte

(code)

)if err !=

nil_

, err = c.

write([

]byte

("\r\n--#boundary#\r\n\r\n--#boundary#--\r\n.\r\nquit\r\n"))

if err !=

nil n, err = c.

read

(buf)

if err !=

nilif buf[0]

=='2'

&& buf[1]

=='5'

&& buf[2]

=='0'

return errors.

new(

string

(buf[

:n])

)}編譯執行上述go**

測試一下curl

之所以沒有使用go自帶的smtp是因為新版本go需要用tls連線,當然網上一大堆方案,但是我這裡只是實現簡單的傳送郵件驗證碼而已,沒必要搞那麼複雜

我的這個服務是不會對外提供的,只是提供localhost的服務,這樣比較安全,當然有需要的可以自己改

這樣我的後台服務就能通過簡單http get傳送乙個驗證碼郵件

特別注意的是現在郵箱的smtp密碼都是授權碼,不是登入的密碼了

django郵件傳送驗證碼

在我們使用 註冊賬號時,使用郵箱傳送驗證碼是很普遍的事。那麼下面就介紹使用django專案傳送郵箱驗證碼來進行驗證註冊。現在說一下在settings.py中的配置。email backend django.core.mail.backends.smtp.emailbackend email host...

手機傳送驗證碼

傳送簡訊以後,再次傳送簡訊按鈕變得不可用,倒計時60秒以後才可以使用 建立按鈕倒計時的方法 function countdown count 在傳送簡訊請求以後呼叫 傳送簡訊按鈕不可用 每過1秒呼叫1次匿名函式 匿名函式中計數減1 按鈕上的文字變為 x秒後可再次傳送驗證碼 如果計數變為0 按鈕變得可...

阿里簡訊服務傳送驗證碼

阿里更新了簡訊伺服器的版本,跟以前不一樣了。現在要進行遷移。出現了問題 問題 code isv.sms signature illegal message 簽名不合法 不存在或被拉黑 requestid 61978f52 f199 4e01 89fe 04b72662e412 bizid null ...