路由机制

配置链接URL到Erlang模块(处理对应请求的模块)的映射就是路由。

当 Cowboy接收到一个请求时,它会尝试在给定的分发规则中匹配 域名 到对应的资源路径。如果匹配成功,那么对应的Erlang 模块就会被执行。

Cowboy首先会匹配域名,接着尝试找到匹配的资源路径。

Cowboy会将路由规则编译后,再使用。

结构

通用的路由结构是这样定义的:
Routes= [Host1, Host2, ... HostN].

每一个域名的匹配规则 包含了 对连接路径的选项约束和路径部件的列表。

Host1= {HostMatch, PathsList}.
Host2= {HostMatch, Constraints, PathsList}.

Read More

Erlang 发送邮件相关问题

1. 协议相关

一封邮件的发送的协议格式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
"HELO XXX\r\n"
"AUTH LOGIN \r\r"
"$Account\r\n" ($Account为账号需要经过base64 encoding)
"$Password\r\n" ($Password 为密码需要经过base64 encoding)
"DATA\r\n"
"From: < $Account> \r\n" ($Account 为发送者的email
"To : < $ToEmails >\r\n" ($ToEmails 为发送者的列表)
"Subject: =?UTF-8?B? $Tittle ?=\r\n"($Tittle 是邮件标题经过base64 编码后的字符串,这样做的目的是为了避免中文乱码)
"MIME-version: 1.0\r\n"
"Content-Type:text/html;charset=UTF-8\r\n\r\n"
"$DATA\r\n\r\n" (正文内容)
"\r\n.\r\n"(结束)
"QUIT\r\n"(退出)

Read More