整合营销服务商

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

免费咨询热线:

HTML链接及实例

TML 使用超级链接与网络上的另一个文档相连。

几乎可以在所有的网页中找到链接。点击链接可以从一张页面跳转到另一张页面。

实例

[demo]

<html>

<head>

<meta charset="UTF-8">

</head>

<body>

<p>

<a href="/index.html">本文本</a> 是一个指向本网站中的一个页面的链接。</p>

<p><a href="http://www.microsoft.com/">本文本</a> 是一个指向万维网上的页面的链接。</p>

</body>

</html>

[/demo]

本例演示如何在 HTML 文档中创建链接。

将图像作为链接

[demo]

<html>

<head>

<meta charset="UTF-8">

</head>

<body>

<p>

您也可以使用图像来作链接:

<a href="/example/html/lastpage.html">

<img border="0" src="./imagecopy1234567890/test.gif" />

</a>

</p>

</body>

</html>

[/demo]

本例演示如何使用图像作为链接。

(可以在本页底端找到更多实例)

HTML 超链接(链接)

超链接可以是一个字,一个词,或者一组词,也可以是一幅图像,您可以点击这些内容来跳转到新的文档或者当前文档中的某个部分。

当您把鼠标指针移动到网页中的某个链接上时,箭头会变为一只小手。

我们通过使用 <a> 标签在 HTML 中创建链接。

有两种使用 <a> 标签的方式:

通过使用 href 属性 - 创建指向另一个文档的链接

通过使用 name 属性 - 创建文档内的书签

什么是超文本?

标记语言的真正威力在于其收集能力,它可以将收集来的文档组合成一个完整的信息库,并且可以将文档库与世界上的其他文档集合链接起来。

这样的话,读者不仅可以完全控制文档在屏幕上的显示,还可以通过超链接来控制浏览信息的顺序。这就是 HTML 和 XHTML 中的 “HT” - 超文本(hypertext),就是它将整个 Web 网络连接起来。

超文本的基础知识

超文本的基本特征就是可以超链接文档;你可以指向其他位置,该位置可以在当前的文档中、局域网中的其他文档,也可以在因特网上的任何位置的文档中。这些文档组成了一个杂乱的信息网。目标文档通常与其来源有某些关联,并且丰富了来源;来源中的链接元素则将这种关系传递给浏览者。

超链接可以用于各种效果。超链接可以用在目录和主题列表中。浏览者可以在浏览器屏幕上单击鼠标或在键盘上按下按键,从而选择并自动跳转到文档中自己感兴趣的那个主题,或跳转到世界上某处完全不同的集合中的某个文档。

超链接还可以向浏览者指出有关文档中某个主题的更多信息。例如,“如果您想了解更详细的信息,请参阅某某页面。”。作者可以使用超链接来减少重复信息。例如,我们建议创作者在每个文档中都签署上自己的姓名。这样就可以使用一个将名字和另一个包含地址、电话号码等信息的单独文档链接起来的超链接,而不必在每个文档中都包含完整的联系信息。

超链接(hyper text),或者按照标准叫法称为锚(anchor),是使用 <a> 标签标记的,可以用两种方式表示。锚的一种类型是在文档中创建一个热点,当用户激活或选中(通常是使用鼠标)这个热点时,会导致浏览器进行链接。浏览器会自动加载并显示同一文档或其他文档中的某个部分,或触发某些与因特网服务相关的操作,例如发送电子邮件或下载特殊文件等。锚的另一种类型会在文档中创建一个标记,该标记可以被超链接引用。

还有一些与超链接相关联的鼠标相关事件。这些事件与 JavaScript 结合使用可以产生一些令人激动的效果。

注释

锚的这两种类型都使用同样的标签;也许这就是它们拥有同样的名称的原因。但是我们发现,如果将它们区分开,把提供热点和超链接地址的锚看作“链接”,而用于标记文档的目标部分的锚称为“锚”,那么您将更容易理解这两种类型的锚。

HTML 链接语法

链接的 HTML 代码很简单。它类似这样:

<a href="url">Link text</a>

href 属性规定链接的目标。

开始标签和结束标签之间的文字被作为超级链接来显示。

实例

<a href="http://www.w3school.com.cn/">Visit W3School</a>

上面这行代码显示为:Visit W3School

点击这个超链接会把用户带到 W3School 的首页。

提示:"链接文本" 不必一定是文本。图片或其他 HTML 元素都可以成为链接。

HTML 链接 - target 属性

使用 Target 属性,你可以定义被链接的文档在何处显示。

下面的这行会在新窗口打开文档:

<a href="http://www.w3school.com.cn/" target="_blank">Visit W3School!</a>

[demo]

<html>

<head>

<meta charset="UTF-8">

</head>

<body>

<a href="http://www.w3school.com.cn/" target="_blank">Visit W3School!</a>

<p>如果把链接的 target 属性设置为 "_blank",该链接会在新窗口中打开。</p>

</body>

</html>

[/demo]

HTML 链接 - name 属性

name 属性规定锚(anchor)的名称。

您可以使用 name 属性创建 HTML 页面中的书签。

书签不会以任何特殊方式显示,它对读者是不可见的。

当使用命名锚(named anchors)时,我们可以创建直接跳至该命名锚(比如页面中某个小节)的链接,这样使用者就无需不停地滚动页面来寻找他们需要的信息了。

命名锚的语法:

<a name="label">锚(显示在页面上的文本)</a>

提示:锚的名称可以是任何你喜欢的名字。

提示:您可以使用 id 属性来替代 name 属性,命名锚同样有效。

实例

首先,我们在 HTML 文档中对锚进行命名(创建一个书签):

<a name="tips">基本的注意事项 - 有用的提示</a>

然后,我们在同一个文档中创建指向该锚的链接:

<a href="#tips">有用的提示</a>

您也可以在其他页面中创建指向该锚的链接:

<a href="http://www.w3school.com.cn/html/html_links.asp#tips">有用的提示</a>

在上面的代码中,我们将 # 符号和锚名称添加到 URL 的末端,就可以直接链接到 tips 这个命名锚了。

基本的注意事项 - 有用的提示:

注释:请始终将正斜杠添加到子文件夹。假如这样书写链接:href="http://www.w3school.com.cn/html",就会向服务器产生两次 HTTP 请求。这是因为服务器会添加正斜杠到这个地址,然后创建一个新的请求,就像这样:href="http://www.w3school.com.cn/html/"。

提示:命名锚经常用于在大型文档开始位置上创建目录。可以为每个章节赋予一个命名锚,然后把链接到这些锚的链接放到文档的上部。如果您经常访问百度百科,您会发现其中几乎每个词条都采用这样的导航方式。

提示:假如浏览器找不到已定义的命名锚,那么就会定位到文档的顶端。不会有错误发生。

更多实例

在新的浏览器窗口打开链接

[demo]

<html>

<head>

<meta charset="UTF-8">

</head>

<body>

<a href="http://www.w3school.com.cn/" target="_blank">Visit W3School!</a>

<p>如果把链接的 target 属性设置为 "_blank",该链接会在新窗口中打开。</p>

</body>

</html>

[/demo]

本例演示如何在新窗口打开一个页面,这样的话访问者就无需离开你的站点了。

链接到同一个页面的不同位置

[demo]

<html>

<head>

<meta charset="UTF-8">

</head>

<body>

<p>

<a href="#C4">查看 Chapter 4。</a>

</p>

<h2>Chapter 1</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 2</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 3</h2>

<p>This chapter explains ba bla bla</p>

<h2><a name="C4">Chapter 4</a></h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 5</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 6</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 7</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 8</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 9</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 10</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 11</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 12</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 13</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 14</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 15</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 16</h2>

<p>This chapter explains ba bla bla</p>

<h2>Chapter 17</h2>

<p>This chapter explains ba bla bla</p>

</body>

</html>

[/demo]

本例演示如何使用链接跳转至文档的另一个部分

跳出框架

[demo]

<html>

<head>

<meta charset="UTF-8">

</head>

<body>

<p>被锁在框架中了吗?</p>

<a href="/index.html"

target="_top">请点击这里!</a>

</body>

</html>

[/demo]

本例演示如何跳出框架,假如你的页面被固定在框架之内。

创建电子邮件链接

[demo]

<html>

<head>

<meta charset="UTF-8">

</head>

<body>

<p>

这是邮件链接:

<a href="mailto:someone@microsoft.com?subject=Hello%20again">发送邮件</a>

</p>

<p>

<b>注意:</b>应该使用 %20 来替换单词之间的空格,这样浏览器就可以正确地显示文本了。

</p>

</body>

</html>

[/demo]

本例演示如何链接到一个邮件。(本例在安装邮件客户端程序后才能工作。)

创建电子邮件链接 2

[demo]

<html>

<head>

<meta charset="UTF-8">

</head>

<body>

<p>

这是另一个 mailto 链接:

<a href="mailto:someone@microsoft.com?cc=someoneelse@microsoft.com&bcc=andsomeoneelse2@microsoft.com&subject=Summer%20Party&body=You%20are%20invited%20to%20a%20big%20summer%20party!">发送邮件!</a>

</p>

<p>

<b>注意:</b>应该使用 %20 来替换单词之间的空格,这样浏览器就可以正确地显示文本了。

</p>

</body>

</html>

[/demo]

本例演示更加复杂的邮件链接。

HTML 链接标签

标签 描述

<a> 定义锚。


击上方蓝色“Go语言中文网”关注我们,领全套Go资料,每天学习 Go 语言

发送邮件是一个很常见的需求:用户邮箱验证、邮箱召回等。Go 语言标准库自带 net/smtp 库,实现了 smtp 协议,用于发送邮件。然而这个库比较原始,使用不方便,而且官方声明不再增加新功能。于是乎出现了一些强大的第三方邮件库,今天推荐的这个库就是其中之一。

项目地址:https://github.com/jordan-wright/email,Star 数 1.3k+。

简介

email 包的设计易于使用,但又足够灵活以免受到限制。目的是为开发者提供友好的电子邮件接口。

该包当前支持以下功能:

  • From, To, Bcc, 和 Cc;
  • 邮件地址同时支持 "test@example.com" 和 "First Last test@example.com” 两种形式;
  • 正文支持普通文本和 HTML;
  • 附件支持;
  • 已读回馈;
  • 自定义协议头;
  • 。。。

快速使用

先安装:

$ go get github.com/jordan-wright/email

后使用,使用 Gmail 发送邮件:

e := email.NewEmail()
e.From = "Jordan Wright <test@gmail.com>"
e.To = []string{"test@example.com"}
e.Bcc = []string{"test_bcc@example.com"}
e.Cc = []string{"test_cc@example.com"}
e.Subject = "Awesome Subject"
e.Text = []byte("Text Body is, of course, supported!")
e.HTML = []byte("<h1>Fancy HTML is supported, too!</h1>")
e.Send("smtp.gmail.com:587", smtp.PlainAuth("", "test@gmail.com", "password123", "smtp.gmail.com"))
  • 通过 NewEmail 获取一个 Email 的实例;
  • From 设置发件人;
  • To 设置发给谁,支持多人;
  • Cc 设置抄送人,支持多人;
  • Bcc 设置密抄人,支持多人;
  • Subject 指定邮件标题;
  • Text 指定普通文本邮件正文;
  • HTML 指定 HTML 格式邮件正文;
  • 调用 Email 实例的 Send 方法进行邮件发送:第一个参数是 smtp 地址,第二个参数是 smtp.Auth 实例;

可见该库最终还是使用标准库 net/smtp 进行实际的邮件发送。

注意事项

  • From 中如果包含中文,比如:
e.From = "Go语言中文网<polaris@studygolang.com>”

收到的邮件不会显示发件人,有人提了一个 PR 支持 non-US-ASCII,但还未被 merge;根据该 PR 的提示,我们可以这样解决此问题:

e.From = mime.QEncoding.Encode("UTF-8", "Go语言中文网") + "<polaris@studygolang.com>"
  • 如果同时指定 Text 和 HTML,则 Text 的内容会被忽略;
  • 虽然默认情况下会尝试切换到 TLS,但如果想显示使用 TLS,则调用 Email#SendWithTLS 方法,具体代码如下:
tlsConfig := &tls.Config{
 InsecureSkipVerify: true,
  ServerName:         smtpHost,
}
e.SendWithTLS(addr, auth, tlsConfig)
  • 因为 Email 结构体的字段都是导出的,因此可以通过 &email.Email{} 这种形式创建实例,并直接为各个字段赋值;

带附件的邮件

如果邮件中需要带上附件,这个库很方便:

e.AttachFile("test.txt")

也可以是通过 io.Reader 读取文件:

func (e *Email) Attach(r io.Reader, filename string, c string) (a *Attachment, err error)

其中 filename 是放入附件显示的文件名,c 是 Content-Type,如果为空,则使用 application/octet-stream。

重用连接

该库还支持连接池,例如:

p, err := email.NewPool(
  "smtp.qq.com:25",
  4,
  smtp.PlainAuth("", "274768166@qq.com", "password", "smtp.qq.com"))
  • 第 2 个参数 4 表示最多开启 4 个连接

通过 p 的 Send 方法执行发送操作:

p.Send(e, 10e9)

完整例子如下:

package main
import (
 "log"
 "mime"
 "net/smtp"
 "net/textproto"
 "strconv"
 "sync"
 "github.com/jordan-wright/email"
)
func main() {
 var wg sync.WaitGroup
 ch := make(chan *email.Email, 4)
 err := sendEmailByPool(ch, &wg)
 if err != nil {
  panic(err)
 }
 for i := 0; i < 4; i++ {
  wg.Add(1)
  ch <- &email.Email{
   To:      []string{"polaris@studygolang.com"},
   From:    mime.QEncoding.Encode("UTF-8", "Go语言中文网") + "<274768166@qq.com>",
   Subject: "Pool" + strconv.Itoa(i),
   HTML:    []byte("<h1>这是 HTML 正文</h1>"),
   Headers: textproto.MIMEHeader{},
  }
 }
 wg.Wait()
 close(ch)
}
func sendEmailByPool(ch <-chan *email.Email, wg *sync.WaitGroup) error {
 p, err := email.NewPool(
  "smtp.qq.com:25",
  4,
  smtp.PlainAuth("", "274768166@qq.com", "password", "smtp.qq.com"))
 if err != nil {
  return err
 }
 for i := 0; i < 4; i++ {
  go func() {
   for e := range ch {
    err := p.Send(e, 10e9)
    if err != nil {
     log.Println("Send Email fail, err:", err)
    } else {
     log.Println("Send Email Successfully!")
    }
    wg.Done()
   }
  }()
 }
 return nil
}

总结

通过上面的介绍,你应该掌握了该库的使用,该库是不是满足了你对发邮件的需求?

最后附上一个完整的带附件的发邮件程序:

package main
import (
 "log"
 "mime"
 "net/smtp"
 "strings"
 "github.com/jordan-wright/email"
)
func main() {
 sendEmail("测试第三方 email 库", "xuxinhua@studygolang.com")
}
func sendEmail(subject string, tos ...string) error {
 e := email.NewEmail()
 smtpUsername := "274768166@qq.com"
 e.From = mime.QEncoding.Encode("UTF-8", "Go语言中文网") + "<274768166@qq.com>"
 e.To = tos
 e.Subject = subject
 e.HTML = []byte("<h1>HTML 正文</h1>")
 e.AttachFile("zap.log")
 auth := smtp.PlainAuth("", smtpUsername, "password", "smtp.qq.com")
 err := e.Send("smtp.qq.com:25", auth)
 if err != nil {
  log.Println("Send Mail to", strings.Join(tos, ","), "error:", err)
  return err
 }
 log.Println("Send Mail to", strings.Join(tos, ","), "Successfully")
 return nil
}
  • 测试时注意将发件人、收件人和密码改为你自己的。

挑战30天在头条写日记#

关于电子邮件和网页等服务如何使用网络进行连接的概述,具体的操作步骤和操作指南:

电子邮件服务连接

  1. 配置电子邮件客户端:

打开您的电子邮件客户端,如Microsoft Outlook、Gmail、Apple Mail等。

在客户端中找到 "设置" 或 "首选项" 选项。

  1. 添加邮件账户:

选择 "添加账户" 或 "新建邮箱账户"。

输入您的电子邮件地址和密码。

  1. 配置服务器设置:

在配置中,选择 "手动设置" 或 "高级设置"。

输入电子邮件提供商提供的服务器设置信息,包括传入(IMAP或POP3)和传出(SMTP)服务器地址、端口号、加密类型等。

确保您的用户名和密码正确。

  1. 测试连接:

客户端将尝试连接到电子邮件服务器。

测试是否能够成功接收和发送电子邮件。

  1. 完成设置:

一旦测试连接成功,保存设置并完成配置。

您可开始发送和接收电子邮件。

网页服务连接

  1. 打开Web浏览器:

启动您的Web浏览器,如Google Chrome、Mozilla Firefox、Microsoft Edge等。

  1. 输入网址:

在浏览器的地址栏中输入您要访问的网页的URL(统一资源定位符)。

  1. 浏览器向DNS服务器查询域名:

浏览器会将输入的URL发送给DNS(域名系统)服务器,以获取与该网址相关的IP地址。

  1. 建立TCP连接:

一旦浏览器知道服务器的IP地址,它将建立一个TCP(传输控制协议)连接到服务器。

  1. 服务器响应:

服务器接收到浏览器的请求,并将网页的内容作为HTTP(超文本传输协议)响应返回给浏览器。

  1. 浏览器渲染页面:

浏览器接收到服务器的响应后,将网页的HTML、CSS和JavaScript等内容渲染到您的屏幕上。

  1. 浏览网页:

您现在可在浏览器中浏览网页,与页面上的链接交互,填写表单等。

电子邮件使用诸如SMTP、POP3和IMAP等协议进行通信,而网页使用HTTP和HTTPS协议与服务器交互,这些协议和通信方式都是标准化的。