PutEmail Processor
描述
向每个传入 FlowFile 的配置收件人发送电子邮件
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| SMTP Hostname | | SMTP 主机的主机名 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| SMTP Port | 25 | 用于 SMTP 通信的端口 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Authorization Mode | password-based-authorization-mode |
| 如何授权代表用户发送电子邮件。 |
| OAuth2 Access Token Provider | | 控制器服务 API:OAuth2AccessTokenProvidercn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 可以提供访问令牌的 OAuth2 服务。 |
| SMTP Username | | SMTP 帐户的用户名 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| SMTP Password | | SMTP 帐户的密码 敏感属性:是 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| SMTP Auth | true | 指示是否应使用身份验证的标志 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| SMTP START TLS | false | 指示是否应使用 STARTTLS 命令启用机会 TLS 的标志 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| SMTP Socket Factory | javax.net.ssl.SSLSocketFactory | 用于 SMTP 连接的套接字工厂 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| SMTP X-Mailer Header | Lynxus | X-Mailer 用于外发电子邮件的标头 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Attributes to Send as Headers Regular Expression | | 与所有 FlowFile 属性名称匹配的正则表达式。属性名称匹配此正则表达式的任何属性都将作为 Header 添加到电子邮件中。如果未指定,则不会将任何 FlowFile 属性添加为标头。 | |
| Content Type | text/plain | 用于解释电子邮件内容的 Mime 类型,例如 text/plain 或 text/html 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| From | | 指定用作发送方的电子邮件地址。遵循 RFC822 语法的逗号分隔地址序列。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| To | | 电子邮件(收件人)行中包含的收件人。遵循 RFC822 语法的逗号分隔地址序列。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| CC | | 电子邮件(抄送)行中包含的收件人。遵循 RFC822 语法的逗号分隔地址序列。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| BCC | | 电子邮件(密送)行中包含的收件人。遵循 RFC822 语法的逗号分隔地址序列。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Reply-To | | 将接收回复而非发件人的收件人(参见 RFC2822 第3.6.2节)。例如,当电子邮件由无回复账户发送时,此功能很有用。此字段为可选。遵循 RFC822 语法的逗号分隔地址序列。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Subject | Message from Lynxus | 电子邮件主题 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Message | | 电子邮件正文 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| FlowFile Content as Message | false | 指定 FlowFile 内容是否应该是电子邮件的消息。 如果为 true,则忽略“Message”属性。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Input Character Set | UTF-8 | 指定 FlowFile 内容的字符集,用于读取输入 FlowFile 内容以生成消息正文或作为消息的附件。如果未设置,默认值为 UTF-8。 | |
| Attach File | false |
| 指定是否应将 FlowFile 内容附加到电子邮件中 |
| Include All Attributes In Message | false |
| 指定是否所有 FlowFile 属性都应记录在电子邮件正文中 |
动态属性
| 名称 | 值 | 描述 |
|---|---|---|
| mail.propertyName | 要在 JavaMail Session 对象中设置的特定属性的值 | 将传递给邮件会话的动态属性名称。可用的属性可在以下位置找到:https://javaee.github.io/javamail/docs/api/com/sun/mail/smtp/package-summary.html。 |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
failure | 发送失败的FlowFile将被路由到该关系 | 否 |
success | 成功发送的FlowFiles将被路由到该关系 | 否 |
状态管理
该组件不存储状态。
受限 (Restricted)
该组件不受限。
输入要求
该组件要求有传入连接。
系统资源考量
| 资源 | 描述 |
|---|---|
| MEMORY | 当使用流文件内容作为电子邮件正文的属性设置为 true 时,FlowFile 的全部内容(作为 String 对象)将被读入内存。 |
详细说明
PutEmail
OAuth 授权模式
PutEmail 可以使用 OAuth2,具体方式可能因邮件服务商而异。
使用 Gmail 的 OAuth
配置 Gmail OAuth 客户端
Gmail OAuth 客户端可以代表多个不同的 Gmail 账户发送邮件,因此这一步只需要做一次。
- 在 Google 开发者控制台中创建一个项目(如果还没有的话)
- 配置 OAuth 同意屏幕
- 创建 OAuth 客户端。将 Application type 选择为 Desktop app。客户端创建完成后,记下 Client ID 和 Client secret 的值,后续步骤会用到。
为 Lynxus 获取令牌
只有当 Gmail 账户的所有者同意前面创建的客户端代表其发送邮件之后,才会颁发令牌。因此,每个 Gmail 账户 都需要执行一次这一步骤。
-
访问以下网页:
https://accounts.google.com/o/oauth2/auth?redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fmail.google.com&client_id=CLIENT_ID
将末尾的 CLIENT_ID 替换为你的 Client ID。
-
可能需要选择要授权的 Google 账户。连续两次点击 Continue。
-
页面会显示一个授权码(Authorisation code),底部会有类似这样的提示:
Authorisation code
Please copy this code, switch to your application and paste it there:
AUTHORISATION_CODE
-
在终端中执行以下命令获取访问令牌(access token)和刷新令牌(refresh token)。 如果 curl 命令返回错误,请从第 1 步重新开始。
curl https://accounts.google.com/o/oauth2/token -d grant_type=authorization_code -d redirect_uri="urn:ietf:wg:oauth:2.0:oob" -d client_id=CLIENT_ID -d client_secret=CLIENT_SECRET -d code=AUTHORISATION_CODE
将 CLIENT_ID、CLIENT_SECRET 和 AUTHORISATION_CODE 替换为你的值。
-
curl 命令会返回一个包含 access token 和 refresh token 的 JSON:
{
"access_token": "ACCESS_TOKEN",
"expires_in": 3599,
"refresh_token": "REFRESH_TOKEN",
"scope": "https://mail.google.com/",
"token_type": "Bearer"
}
在 Lynxus 中配置令牌
-
在 PutEmail Processor 的 Authorization Mode 属性中选择 Use OAuth2。
-
在 OAuth2 Access Token Provider 属性中选择/创建一个 StandardOauth2AccessTokenProvider Controller Service。
-
在 StandardOauth2AccessTokenProvider Controller Service 的 Grant Type 属性中选择 Refresh Token。
-
在 Refresh Token 属性中填入 curl 命令返回的 REFRESH_TOKEN。
-
在 Authorization Server URL 中填入:
https://accounts.google.com/o/oauth2/token
-
同时填写 Client ID 和 Client secret 属性。