为了在EasySQLMAIL中实现邮件的收发,您需要把邮件账号信息配置到EasySQLMAIL中。EasySQLMAIL将使用您配置的这些邮件账号来发送邮件,并且可以接收这些账号的邮件,以实现自动化邮件处理。
您可以在EasySQLMAIL中配置多个邮件账号,用每个账号发送不同的邮件。
在EasySQLMAIL控制台中点击左侧菜单条中的“消息通道管理”->“发信邮件账号管理”打开发信邮件账号管理界面,然后点击“创建新账号”按钮。
添加邮件账号
在这个对话框中:
发信协议 | 选择邮件发送协议。 |
电子邮件地址 | 输入发信邮件账号的电子邮件地址。例如”easysqlmail@qq.com” |
登录认证方式 |
设置邮件账号的登录认证方式. 系统将使用这里设置的方式登录邮件服务器。EasySQLMAIL支持以下认证方式: 用户名和密码认证: 使用传统的用户名+密码的方式登录邮件服务器。对于一些邮件系统,例如QQ邮箱,新浪邮箱等,应该使用"授权码"作为登录密码。具体信息请参考相应邮箱系统的帮助文档。 Microsoft OAuth2: 微软电子邮件服务的OAuth2认证方法需要配置一个微软应用程序并使用微软账户登录。Outlook.com、Hotmail.com和Microsoft Office 365等电子邮件账号必须使用这种认证方法。 |
邮件系统用户名称 | 输入发信邮件帐号在邮件系统中的登录名称。邮件系统用户名称通常与电子邮件地址相同。 |
邮件系统用户密码 | 输入发信邮件账号在邮件系统中的登录密码。注意:某些邮件系统(例如QQ邮箱、新浪邮箱等)需要使用邮箱的“授权码“作为登录密码。参见QQ邮箱、新浪邮件的授权码 |
允许发送邮件 | 选择此选项后,EasySQLMAIL可以使用此邮件账号发送邮件。 |
SMTP服务器地址 | 输入邮件系统的SMTP服务器地址。 |
SMTP端口 | 发信邮件账号的SMTP服务端口。如果不填写,系统将使用默认SMTP端口进行发信。SMTP默认端口号为25,启用SSL连接时,SMTP默认端口号为465。此选项需要咨询邮件系统管理员。 |
发信间隔时间 | 设置发信时间间隔,单位为秒。默认每10秒检查并发送一次新邮件。 |
使用SSL连接SMTP服务器 | 选择是否使用SSL协议连接SMTP服务器。此选项需要咨询邮件系统管理员。 |
使用TLS连接SMTP服务器 | 选择是否使用TLS协议连接SMTP服务器。此选项需要咨询邮件系统管理员。 |
允许EasySQLMAIL接收此邮箱的邮件 | 选择是否允许EasySQLMAIL收取此邮箱的邮件。如果选择此选项,EasySQLMAIL会定时检查此账号的收件箱和指定的文件夹,并把新邮箱保存到本地数据库中。 |
邮件接收选项 | 如果允许EasySQLMAIL接收此邮箱的邮件,可以点击此按钮设置接收邮件的选项。 |
收信协议类型 | 如果允许EasySQLMAIL接收此邮箱的邮件,则需要在这里指定收信协议类型。可选值为”POP3”或”IMAP”。此选项需要咨询邮件系统管理员。 |
POP3/IMAP服务器地址 | 如果允许EasySQLMAIL接收此邮箱的邮件,则需要在这里指定POP3或IMAP服务器的地址。 |
POP3/IMAP服务器端口 | 如果允许EasySQLMAIL接收此邮箱的邮件,则需要在这里指定POP3或IMAP服务端口。如果不填写,系统将使用默认的POP或IMAP端口号进行收信。 |
收信间隔时间(秒) | 如果允许EasySQLMAIL接收此邮箱的邮件,可以在这里设置收取邮件的间隔时间,单位为秒。系统将每隔一段时间检查一次新邮件。默认每30秒收取一次新邮件。 |
提示:
(1) 系统中已经预置了常用的邮件系统的SMTP服务器信息。如果您使用的邮件系统在系统预置的列表中,可以不用输入相应的服务器信息,系统会自动填写。
(2) 如果不清楚您的邮件服务器信息,请咨询您的邮件系统管理员。
(3) 如果您正在使用Foxmail或是Outlook等邮件客户端进行收发邮件操作,也可以按照Foxmail或是Outlook中的SMTP、POP和IMAP的配置在EasySQLMAIL中配置发信邮件账号的邮件服务器信息。
(4) QQ邮箱、新浪邮箱、网易邮箱等一些邮件系统需要在浏览器中登录相应邮件系统后开启邮件账号的SMTP发信功能,并设置单独的授权码,将授权码输入到EasySQLMAIL发信邮件账号的“邮件系统用户密码”中才能正常发信。以下是各邮件系统的SMTP服务和授权码帮助文档:
QQ邮箱:https://service.mail.qq.com/detail/0/75
发信邮件账号高级选项
通过HTTP代理服务器连接 | 是否通过HTTP代理服务器连接邮件服务器。 |
发信时保持原始的发件人信息 | 有一些邮件系统不允许发件人自定义发信人名称,这时可以选择此选项保持原始发件人名称以防止邮件被服务器拒收。 |
发件人名称显示为 | 未选择“发信时保持原始的发件人信息”选项时,可以在这里定义通过此邮箱发出的信件显示的发件人名称。在收件人查看邮件时,这个名称将被显示在发件人信息中。(此功能需要您的邮件服务器支持) |
每次连接时的最大发信数量 | 设置每次连接到SMTP邮件服务器时的最大发信数量。每次发信超过此数量时,系统将断开SMTP连接,下次连接时再发送剩余的邮件。 |
发信限额设置 |
设置邮件账号单位时间内的最大发信数量。如果单位时间内的发信数量超出设置的数量后,系统会暂停使用此账号发信,直到下一个单位时间。 例如,下面的配置表示“从2024-03-14 00:00开始,每1天最多使用此账号发送1000个邮件”: |
您可以使用EasySQLMAIL来接收邮件。并且可以在收到新邮件后触发指定的任务来处理邮件数据。
注意:启用"允许EasySQLMAIL接收此邮箱的邮件"选项后,EasySQLMAIL将从邮件服务器读取电子邮件并存储到本地数据库(即EasySQLMAIL使用的PostgreSQL数据库)中,同时电子邮件的附件将被保存在EasySQLMAIL的安装目录中。如果其他用户能够访问该计算机,他们可能会查看这些文件的内容。在启用此选项前请确保您已了解潜在的风险。
您可以在邮件账号配置对话框中勾选"允许EasySQLMAIL接收此邮箱的邮件"选项,然后配置接收邮件的选项。
配置邮件接收选项
在这个对话框中:
保存此时间以后的收到的邮件到本地数据库 | 设置邮件接收的起始时间点。EasySQLMAIL会在服务器上查找并下载此时间以后收到的邮件。 |
从选定的文件夹读取邮件 | EasySQLMAIL将在指定文件夹中查找新邮件。默认情况下,EasySQLMAIL只在Inbox文件夹中查找新邮件。您也可以在这里选择其它要检查的文件夹,例如Junk文件夹(通常用于存放垃圾邮件)。 |
在EasySQLMAIL保存收到的邮件数据X天 | 设置邮件在EasySQLMAIL中的保留时间。默认情况下,EasySQLMAIL会将收到的邮件数据保存365天。 |
允许接受数据提取申请 | 是否允许通过此邮件账号接收数据提取申请。 |
收到新邮件时执行指定的任务 | 设置收到新邮件时要触发的任务。您可以在收到新邮件时执行一些任务来处理新邮件的数据,例如把邮件的Excel附件中的数据导入您的数据库。 |
您可以在EasySQLMAIL的默认数据源中使用getInboxEmail(@@InboxEmailUUID)和getInboxEmailContent(@@InboxEmailUUID)函数访问收到的邮件数据。这里的@@InboxMailUUID是EasySQLMAIL的系统函数,您可以在由新邮件触发的任务中使用此变量得到新邮件的唯一标识符。
例如,您可以在一个由新邮件触发的任务中使用以下SQL语句来读取对应的新邮件的信息:
在命令中获取邮件信息
这里使用的SQL语句如下:
select * from getInboxEmail(#[@@InboxEmailUUID]#);
以下是getInboxEmail和getInboxEmailContent返回的字段的说明。
getInboxEmail(#[@@InboxEmailUUID]#): 返回邮件的摘要信息
inbox_mail_id | long int | 邮件的ID,由EasySQLMAIL生成 |
mail_acct_id | int | 收到此邮件的账号的ID。由EasySQLMAIL生成。 |
mail_acct_addr | text | 收到此邮件的账号的邮箱地址. |
message_id | text | 邮件的MessageID。由邮件服务器生成。 |
from_addr | text | 发送此邮件的邮箱地址, 由邮件的发送方设置. |
reply_to | text | 邮件的回复地址, 由邮件的发送方设置. |
folder_name | text | 此邮件所在的文件夹,例如"Inbox"或"Junk". |
received_time | datetime | 邮件服务器收到此邮件的时间. |
send_to | text | 邮件的收件人列表. |
copy_to | text | 邮件的抄送(CC)列表. |
bcc_to | text | 邮件的暗送(BCC)列表. |
mail_size | long int | 邮件的大小. |
sent_date | datetime | 邮件的发送时间. 由邮件服务器填写. |
subject | text | 邮件的主题. |
create_time | datetime | EasySQLMAIL收到此邮件的时间. |
state | char(1) |
邮件记录的状态. A: 有效; X: 已删除。 注意这个字段指的是邮件数据在v_inbox_mail视图中的状态,不表示邮件在服务器上的状态。 |
state_time | datetime | EasySQLMAIL中的邮件记录的状态时间. |
getInboxEmailContent(#[@@InboxMailUUID]#): 返回邮件的正文内容和附件文件信息.
mail_content_id | long int | 邮件内容记录的ID, 由EasySQLMAIL生成. |
inbox_mail_id | long int | 对应的邮件在v_inbox_mail中的inbox_mail_id, 由EasySQLMAIL生成. |
content_type | text | 内容的类型. |
html_content | text | 如果内容类型是"TEXT/HTML", 此字段存储邮件正文的HTML内容. |
text_content | text | 存储邮件的文本内容. |
file_name | text | 如果内容类型是"attachment"(附件文件), 此字段存储附件的文件名. |
file_size | long int |
如果内容类型是文本或是HTML,此字段存储内容的长度(单位为Byte). 如果内容类型是"attachment"(附件文件), 此字段存储附件文件的大小(单位为Byte). |
file_uuid | text | 如果内容类型是"attachment"(附件文件), 此字段存储附件文件的FILE_UUID。您可以在任务中使用UUID来访问对应的附件文件。 |
comments | text | 如果EasySQLMAIL在处理邮件内容时发生错误,此字段记录错误的内容。例如,当附件文件的大小超过限制时,EasySQLMAIL将不会下载对应的附件文件,并在这里记录错误信息。 |
附件文件的存放位置
EasySQLMAIL在接收到电子邮件附件后,会为每个文件分配一个UUID(唯一标识符),并将文件存储在EasySQLMAIL安装目录下的arch\inbox文件夹中。
具体文件夹的名称与电子邮件的接收时间有关。例如,如果一封电子邮件的邮件ID(getInboxEmail(#[@@InboxEmailUUID]#)函数返回的inbox_mail_id字段)为6173,且接收时间(getInboxEmail(#[@@InboxEmailUUID]#)函数返回的create_time字段)为2024年08月18日 12:34:55,则该邮件的附件将被存储在文件夹"EasySQLMAIL\arch\inbox\20240818\6173"中。
附件文件的名称由getInboxEmailContent(#[@@InboxEmailUUID]#)返回的file_uuid字段的值和文件的扩展名组成。
例如,如果file_uuid是"<b423ecdc38dd52f8166506349c5ff853>",且原始文件名为"Report.xlsx",则EasySQLMAIL会将文件存储为"EasySQLMAIL\arch\inbox\20240818\6173\b423ecdc38dd52f8166506349c5ff853.xlsx"。
Microsoft的邮箱账户(如 Outlook.com 和 Hotmail.com)要求配置 OAuth2 认证方法进行登录。请按照以下步骤进行配置:
第一步:将账户的认证类型设置为“Microsoft OAuth2”。
第二步:在 OAuth2 认证应用中选择用于认证的应用。如果您无法自行创建应用,可以选择 EasySQLMAIL 提供的“Microsoft OAuth2 App”。如果您已经在 Azure 中创建了自己的应用,可以点击“应用管理器”按钮将您的应用添加到 EasySQLMAIL 系统中,然后选择此应用作为您的登录认证应用。
第三步:点击“OAuth登录”按钮,在您的浏览器中打开 Microsoft 账户登录页面,并输入您的 Microsoft 账户凭据进行登录。请注意,您用于登录的 Microsoft 账户必须与您输入的电子邮件账户相匹配。
第四步:在成功登录您的Microsoft账户后,如果出现 API 权限提示,请点击“接受”按钮。
第五步:当浏览器显示以下消息时,表示登录成功。请返回EasySQLMAIL控制台继续配置您的电子邮件账户。
OAuth2登录成功后,“OAuth2登录状态”应显示“已登录”。如果您以后更改了OAuth2应用的设置,需要在邮件账号配置对话框中点击“OAuth2登录”按钮重新登录您的Microsoft账户。
在系统中同时配置了多个发信邮件账号时,系统管理员可以为发信邮件账号设置优先级。系统发送邮件时,将优先使用优先级高的发信账号进行发送,当优先级高的发信账号发送失败时,再依次选择优先级较低的发信账号进行发送。
调整发信优先级
系统管理员可以在这个对话框中使用“上移”、“下移”按钮调整发信账号的优先级。系统在发送邮件时,位置靠前的发信邮件账号将优先被使用。