者 | Mateusz Iwaniuk
譯者 | 明明如月,責編 | 夕顏
出品 | CSDN(ID:CSDNnews)
文章配套代碼: https://github.com/iwaniukooo11/email-sender
現在,即使是創建最基本的網站,程序員也必須使用現代的功能和技術。甚至像為你的朋友創建簡單的投資組合這樣的基本項目也可能涉及到一些問題,比如從聯系人表單接收數據。有很多方法可以讀取這些數據。你可以將表單與數據庫連接起來,然后從數據庫中讀取傳入的消息來實現功能,但這樣做會給不懂技術的客戶造成困難。
你為什么不通過發送電子郵件傳輸信息?
不使用數據庫就能接收到傳入的消息,絕對是最佳選擇,也是最方便用戶的選擇。但問題來了—如何實現呢?你可能認為需要使用某種后端語言。
實際上,你不必使用任何如 php 或 python 這種后端語言,你甚至不需要用到 node.js!你需要的就是一個簡單的EmailJS 庫。
本文將介紹下面兩個重要功能:
配置 emailjs 帳戶
使用 JS 發送電子郵件
請注意,在我的項目中,我使用了 gulp 和 webpack,我在 src 文件夾存放源碼,dist 存放最終發布版本的代碼。
我將分 5 個步驟向你展示如何從頭開始構建電子郵件發送器。
步驟1-用 HTML 創建表單
首先需要創建一個 HTML 表單。你不必放置像 required 或 max 這種驗證屬性,因為稍后,preventDefault 函數將在你的提交事件上運行,它會讓這些屬性的處理失效。
表單中最重要的是為每個輸入放置 name 屬性,后面會用到。
我的非常簡單的表單是這樣的:
src/html/index.html
<form class="form">
<input name='name' type="text" placeholder="Your name..." class="form__input" />
<input name='topic' type="text" placeholder="Topic..." class="form__input" />
<textarea name='message' type="text" placeholder="Your Message..." class="form__input" ></textarea>
<input type="submit" value="send" class="form__input form__input--button">
</form>
步驟2-注冊成為 email 用戶
要配置你的電子郵件,你必須注冊電子郵件服務。別擔心—使用這個網站非常方便和省時。
登入后,系統會詢問你的電子郵件服務,它位于個人電子郵件服務區(personal email service)。在我的例子中,我選擇了 gmail。
然后,你需要連接你的 gmail 帳戶。這將用來發送電子郵件給你客戶。例如,如果你關聯了 xyz@gmail.com 賬戶,你后續發送的郵件都將從這個郵箱發出。所以不要擔心“ Send email on your behalf” 這個授權信息—這正是你需要的!
連接完 gmail 賬戶后,點擊添加服務(add service)按鈕。
步驟3-創建郵件模板
如果你已經成功連接了你的 gmail 賬戶,你現在應該在信息中心中。現在需要創建電子郵件模板了。
切換到電子郵件模板卡,并單擊創建一個新的模板(create a new template)。界面非常友好,所以創建模板不會有任何問題。
你可以選擇模板的名稱和 ID。我稱之為“我的神奇模板(my_amazing_template)”。
接下來,你必須指定郵件的內容。
模板的變量值來自 input 中的 `name` 屬性。你已將變量插入`{{{}}}`符號中。
不要忘記在“收件人”部分 (右側) 添加電子郵件地址。你的電子郵件將被發送到該電子郵件地址上。截圖中的收件人郵箱是我自己的公司郵箱。
這是我的簡單模板,它使用來自 HTML 表單里的 3 個變量。我還指定了接收電子郵件的主題。
步驟4-保存 API 密鑰
這部分沒什么特別的。Emailjs 共享授權 API 密鑰,將在發送電子郵件時使用。當然,放這些鑰匙最好的地方是`.env` 配置。但是因為我使用的是簡單的靜態文件,我不想使用服務器配置,所以我將它們保存在 apikeys 文件中,然后再將它們導入。
你的 USER_ID 位于 Account > API Keys 菜單下。
TEMPLATE_ID 位于模板的標題下面。
這是我基于不存在的 keyssrc / js / apikeys. js 的示例配置.
src/js/apikeys.js
export default {
USER_ID :'user_DPUd-rest-of-my-id',
TEMPLATE_ID:'my_amazing_template'
}
如果需要將源碼發布到 GITHUB,不要忘記將 APIKEYS 文件添加到 .GITIGNORE文件中
現在是該項目最后也是最重要的部分的了。現在我們必須使用 javascript 發送電子郵件。
首先,你必須下載 emailjs 包。
npm i emails-com
然后,轉到 js 文件,導入庫和 apikeys。
src/js/main.js
import emailjs from 'emailjs-com'
import apiKeys from './apikeys'
現在是編寫發送電子郵件功能的時候了
src/js/main.js
const sendEmail = e => {
e.preventDefault
emailjs
.sendForm('gmail', apiKeys.TEMPLATE_ID, e.target, apiKeys.USER_ID)
.then(
result => {
console.log(result.text)
},
error => {
console.log(error.text)
}
)
}
sendForm 函數有4個參數:
你的電子郵件的 ID,在這里:
TEMPLATE_ID 來自 apikey 文件,
事件對象來自你的表單提交
USER_ID 來自 apikey 文件,
最后,查找表單并添加提交事件監聽器:
src/js/main.js
const form = document.querySelector('.form')
form.addEventListener('submit',sendEmail)
正如我前面提到的,由于 `preventDefault` 函數,屬性驗證將無法工作。你必須使用 JS 自己進行驗證和清除輸入。
以上就是全部內容,接下來讓我們測試一下。
填寫頁面上的表單并發送。
我收到電子郵件,內容正是根據我們的模板和表單數據渲染出來的。
通過上圖可以看出,所有的變量的值都填充到了正確的位置上。
通過本文的介紹你會發現用 JS 發送郵件并非難事。
使用 emailjs,你可以簡單的方式發送電子郵件。
我相信你未來的用戶會很高興收到來自他們網頁上表單填寫數據的t郵件,相信本文對你有幫助。
這篇文章的配套代碼在這里: https://github.com/iwaniukooo11/email-sender
原文鏈接:
https://dev.to/iwaniukooo11/send-e-mails-directly-from-front-end-with-js-5d7d
本文為CSDN翻譯文章,轉載請注明出處。
?我們想研發一個機器學習框架,6 個月后失敗了
?生產型機器學習已經沒那么困難了?
?視頻 | 你不知道的"開源"60年秘史
?GitHub標星10,000+,Apache項目ShardingSphere的開源之路
?阿里技術專家告訴你,如何畫出優秀的架構圖?
?加拿大API平臺如何做到30%為中國明星項目?創業老兵這樣說……
多不是程序員的朋友總是理解不了網站到底是什么,它到底是怎么存在和運行的,也總是以為建一個網站很復雜。其實建網站并不難,也不需要花費太大資金,只需要以下6個步驟即可做出一個網站。
了解完以上6個步驟后,下面我們來詳細學習下操作方法。
第一步:注冊域名(也稱網站網址、URL。如:xxxx.com)
什么是域名?
我們通常在上網時候訪問的網址(如:www.baidu.com)這個就是一個域名,客觀地講它就是網站在互聯網上的地址,是網站的入口。域名也是由若干部分組成,包括數字和字母。域名還可以起到引導、宣傳、代表等作用。域名后綴可分為很多種,例如:我們經常看到的后綴有.com、.cn、.net、.gov等等。
域名注冊費用怎么收取?
域名一般是按年注冊,當然費用也是按年收取的,如果第二年不想要了,會被自動收回;現在如果在九靈云(www.jiulingyun.cn)注冊一個,一般現在費用大概為這些:.com要69元/年;.cn要30元/首年;.net要76元/年;.com.cn要30元/年;.net.cn要30元/年;目前注冊域名公司有好多,如:騰訊云的愛名網、阿里云的萬網等。域名如果已被他人搶先注冊,就注冊不了啦,因為原則上是先注冊先得,不可重復的,那我們可以說它是獨一無二的。
第二步:購買云虛擬主機(也稱云服務器、網站空間)
什么是云虛擬主機?
云虛擬主機(Web Hosting)是一種網站托管服務。產品預裝了常見網站開發語言的運行環境、數據庫及管理工具,您可以通過云虛擬主機簡單、低成本地發布托管網站。
怎么購買云虛擬主機?
這里以九靈云(www.jiulingyun.cn)的云虛擬主機產品為例,具備高在線率、高安全性、高穩定性等多項優勢,有共享IP和獨立IP兩種類型,共享IP價格比較低,只要7元/一個月,特別適合初級入門建站用戶。新手建站建議購買共享IP云虛擬主機就夠用了,共享IP的云虛擬主機有2GB的網頁空間,支持語言:.NET,PHP,ASP,數據庫:100M。購買成功后在控制面板有FTP賬號和FTP地址,可以用于上傳PHP網站程序或者ASP、.NET網站程序,當然云虛擬主機控制面板也支持一鍵安裝網站程序,有dedeCMS內容管理系統、Discuz論壇系統、ECShop商城系統、metinfo企業官網系統等等。
第三步:域名備案(中國境內開設網站需要取得ICP備案,例如:浙ICP備XXXXX號)
為什么要備案?
根據中華人民共和國國務院令第291號《中華人民共和國電信條例》、第292號《互聯網信息服務管理辦法》(簡稱ICP管理辦法),國家對提供互聯網信息服務的ICP實行許可證制度。ICP證是網站經營的許可證,根據國家《互聯網信息服務管理辦法》規定,經營性網站必須辦理ICP證,否則就屬于非法經營。
備案審核時間
備案信息審核需要經過三個步驟:
1、服務器ISP接入商審核
2、待提交至通管局審核表示您提交的備案信息已通過ISP接入商審核, 備案系統正在向通管局系統提交您的備案信息, 備案系統會顯示“待提交至通管局審核”, 提交時間取決于通管局的接口可靠性, 正常時間在一天以內;
3、待通管局審核表示備案信息已成功提交至工信部接口, 通管局正在接收數據或審核,審核時間一般不超過20個工作日
如何開始備案?
現在的域名注冊商大多都會提供免費備案的服務,并且現在基本上都是電子化備案,無須再郵寄各種資料了,這里同樣以九靈云(www.jiulingyun.cn)為例子,備案前先準備好以下資料:
然后登錄電子化備案系統,選擇新增網站接入按照提示填寫相應的資料并且提交,提交后九靈云備案合作商會初次審核你的備案資料,如備案資料無誤將會提交管局審核,經過漫長的等待,管局審核通過后會以短信的形式將ICP備案號發送到你的手機上,至此備案結束。
第四步:域名與云虛擬主機的解析綁定,讓網站域名與云虛擬主機建立關聯
什么是域名系統(DNS)?
DNS,Domain Name System或者Domain Name Service(域名系統或者域名服務)。域名系統為互聯網上的主機分配域名地址和IP地址。由于網絡中的計算機都必須有個IP地址,來識別, 互相之間才能通信,但讓我們記住一大串的IP地址來訪問網站顯然是不可能的,人們更容易記住域名地址,而DNS系統的功能就是自動把域名地址翻譯為IP地址。域名服務是運行域名系統的Internet工具。執行域名服務的服務器稱之為DNS服務器,通過DNS服務器來應答域名服務的查詢,DNS就是域名服務器,他的任務就是確定域名的解析,把域名解析成IP地址,比如A記錄MX記錄等等。
如何將域名解析到云虛擬主機的IP上?
在操作域名解析之前,首先要在云虛擬主機控制臺添加綁定域名,這里以九靈云(jiulingyun.cn)的云虛擬主機的控制臺為例,進入九靈云用戶中心->云虛擬主機->找的已經購買的主機->點擊管理->找的域名綁定選項->然后點擊添加域名。例如我這里添加:www.xuexijianzhan.com。
根據域名綁定頁面底部的提示,需要用別名解析(CNAME)到:xxxxxxxxxx.xxxxxx.cn(為了數據安全,已做掩飾),此時你需要將這一長串網址復制下來,以備域名解析使用。
在云虛擬機綁定域名后,再進入用戶中心->域名->找的已經注冊的域名->點擊管理->添加解析,并根據云虛擬主機綁定域名的提示,添加一個CNAME的解析記錄,并將主機(host)填寫成:www,記錄值就粘貼剛剛復制下來的一長串網址。
經過以上操作,域名已經成功解析到了云虛擬主機上,并且可以通過域名訪問到云虛擬主機了。
第五步:安裝網站程序(也叫建站程序、網站源碼)
什么是網站程序?
網站程序通常是通過php、.NET、ASP等編程語言編寫并設計的一套網頁系統,有點類似我們電腦使用的軟件系統。唯一不同的是網頁系統是運行在云服務器、云虛擬主機上,可以通過任何有互聯網的終端訪問并查看。一般建站比較主流的就是CMS系統(內容管理系統),以下對一些比較有名的建站系統做一個簡單介紹:
WordPress:這個比較有名氣,全球使用量最大的博客程序,可以修改設計模板調用做企業站和外貿網站。更新比較快安全性也非常好,畢竟全球最大量使用。
DedeCMS:一款集簡單、健壯、靈活、開源幾大特點的開源內容管理系統,國內比較早的一套CMS系統。
discuz:做論壇的話這個首選,也是國內起步比較早的程序,目前被騰訊收購,對接公眾號 和微信非常好。已經非常成熟,很多大型網站比如合肥論壇 化龍巷 等都用這種程序。
ECshop:這個國內做商城的網站管理系統,免費開源,可以對接支付寶微信銀聯等支付。
phpwind:一個輕架構,高效率簡易開發,助你快速搭建并輕松管理社區站點。
如何安裝網站程序?
基本上所有的云虛擬主機提供商,都會提供預裝網站程序(一鍵安裝)的功能,例如九靈云的云虛擬主機控制面板就提供以上幾種主流的建站程序一鍵安裝。在安裝網站程序之前,需要先創建一個數據庫,登錄九靈云的用戶中心->云虛擬主機->找的已購的主機->點擊管理->選擇數據庫選項 安裝頁面提示創建一個數據庫,并將數據庫域名、數據庫名稱、數據庫賬號和密碼先復制出來。
創建完數據庫后,就可以點擊站點選項,找到預裝網站,然后選擇自己需要的網站程序,這里我們以discuz論壇程序為例,點擊確定后系統就會自動將網站程序所需文件放入云虛擬主機的網站目錄下。
在耐心等待一段時間后,就可以通過之前綁定的域名輸入到瀏覽器內訪問,因為大部分網站程序還需要一個在線安裝的過程(用于創建數據庫和基礎數據,還有基礎管理員),所以當我們訪問這個域名時就會進入discuz的安裝界面,安裝界面提示同意協議后填入前文提到的數據庫名稱、數據庫賬號密碼等信息以及管理賬號和密碼。填寫完這些信息后,點擊下一步即可開始安裝。
等待安裝完成后,即可進入discuz論壇首頁,可自行在右上角登錄剛剛安裝時填寫的管理員賬戶進入后臺管理。至此你已經網址的建立一個網址,并且可以自行后臺發布文章和管理會員等信息。
第六步:網站二次開發與網站仿站
網站二次開發與仿站需要有一定編程基礎,可以自行在網上學習一些php、html、javascript的基礎知識,有了這些基礎知識后二次開發和仿站就會很容易。前文推薦的大部分建站程序也都是開源的,如果你已經掌握了一定的編程基礎,也可以自行在網上下載這些建站程序的源碼來修改和自行添加功能。然后通過FTP工具上傳到云虛擬主機內,FTP工具大家可以自行網上尋找,在這里也小編也推薦兩個比較常用的FTP管理工具:
FileZilla:FileZilla是開放源碼軟件,具備所有的FTP軟件功能,如:斷點續傳(如果服務器支持),自定義命令,站點管理等功能。
WinSCP:WinSCP是一個免費開源的FTP客戶端,同時支持SFTP和SCP協議,WinSCP是快速輕量級的FTP客戶端,還支持一些高級功能,例如遠程文字編輯。當你打開一個FTP服務器上的純文本文件,在保存文件的時候會透明的保存和上傳到遠程服務器。
結語
關于仿站、FTP文件管理后續會出專門的文章來展開介紹,文章中提到的各個軟件和平臺用于方便介紹建站流程,大家可以自行百度,也可以私信我。
們都知道互聯網的發展,是因為網站的存在。
一個個網站連接成了互聯網,比如我們購物買東西,使用搜索引擎搜東西,用社交網站來聊天,它們給我們生活帶來了極大的樂趣。
你有沒有曾經想要擁有一個自己的網站?
所以今天教大家來自己創建一個自己的網站,你可以隨意添加按鈕,數據,還可以自己動手設計。
而這些都是免費的,僅僅需要花費幾分鐘時間就可以完成。
有沒有很心動,跟著我一起來吧!
在教大家之前,我先給大家介紹一下可以創建網站的這些網站,分析它們的特點,它們使用都大同小異,然后你們可以自己來選擇。
Wix
www.wix.com
Wix 是一個網頁開發平臺,你可以拖拽就可以創建HTML 5 工具網站,你可以免費創建,但是額外的功能需要付費了。
它也是老牌的免費創建網站的網站,它的模板豐富,樣式齊全,有專業的設計師設計模板。
180 個國家的900 萬用戶使用他們的服務,也看出他們的出色。
你只需要注冊登錄,選擇模板,自定義發布文本,圖片等等,然后發布你的網站,所有人都可以訪問你的網站。
由于是國外的網站,不太穩定。
Weebly
www.weebly.com
Weebly 也是類似Wix 的通過拖拽可以創建網站。
它的網站本身就是高顏值,它的模板也是一樣的很精美的。
而且它幾乎幫你完成了一切,比如默認的各種樣式,文本,圖片,表單等等。
它還內置了很多高清圖片庫,還有豐富的模板和樣式,讓你隨意挑選。
它也一樣有很多外置的服務,但是一樣需要付費的。
而且它的空間還是無限的,你可以隨意上傳自己想要的東西。
總感覺崇洋媚外不太好,所以下面也推薦幾個國內做的很不錯的,而且訪問速度很快,你分享給其他人,也不會尷尬的打不開。
竹子建站
www.zhuzi.me
竹子建站算是比較符合國人風格的建站網站。
打開網站,琳瑯滿目的模板,你只需挑選一個自己喜歡的模板,比如像個人網站,婚紗網站,甚至是自己的簡歷也是可以的,你可以提前預覽,或者直接來修改。
打開編輯頁面,頁面的任何一個按鈕圖片,你只需要選中,就會顯示修改工具欄。
你可以修改字體類型大小,顏色,高度,居中等等。
你還可以插入圖片,網址,表格等。
你還可以隨意拖拽控件的位置,或者隨時插入刪除。
修改圖片時,還有內置的高清圖庫,還有各種Icon 可以選擇。
同時它還支持不同的格式,比如像視頻,文檔,PDF,PPT 等。
而且還能做到隨見即所得,真的很方便,編輯好即可發布。
同時它還適配了手機,電腦,平板,讓你在不同的設備上體驗都是非常的棒的。
Strikingly
www.strikingly.com
Strikingly 是面向海外的便捷建站網站,當然它出自國內的團隊之手。
而且它還針對國內發布了,上線了:http://www.sxl.cn
和Strikingly 一樣的服務,而且速度更快,它還有各種強大的功能。
它也是選中就可以隨時編輯。
而且你還可以選擇網站類型,網站描述,添加關鍵詞。
同時它還有數據分析功能。
更多強大的功能需要專業付費版了。
而且它的網頁就沒有那么美觀了。
對于個人用戶不太友好。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。