整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

仅需 5 步,用 JavaScript 直接通过前端发送电子邮件

者 | 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文件中

步骤5-发送电子邮件

现在是该项目最后也是最重要的部分的了。现在我们必须使用 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)为例子,备案前先准备好以下资料:

  1. 身份证件
  2. 智能手机一部(需要用手机人脸核验)
  3. 域名证书(域名注册成功后可获得)

然后登录电子化备案系统,选择新增网站接入按照提示填写相应的资料并且提交,提交后九灵云备案合作商会初次审核你的备案资料,如备案资料无误将会提交管局审核,经过漫长的等待,管局审核通过后会以短信的形式将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 一样的服务,而且速度更快,它还有各种强大的功能。

它也是选中就可以随时编辑。

而且你还可以选择网站类型,网站描述,添加关键词。

同时它还有数据分析功能。

更多强大的功能需要专业付费版了。

而且它的网页就没有那么美观了。

对于个人用户不太友好。