微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

postgresql – postgres中的sp_send_dbmail替代方案?发送Postgres电子邮件报告的简便方法?

sql Server在sp_send_dbmail( quick guide here)中有一个很酷的功能,可以通过电子邮件发送报告. Postgres中有类似的东西吗?我的postgres是在Heroku上托管的,所以我可以分享一个dataclip,但我想知道是否有一种简单的方法来安排电子邮件发送报告.
您可以使用pgmail从Postgresql发送邮件.

先决条件:

在使用pgmail之前,必须安装TCL / u过程语言. TCL / u是一个UNRESTRICTED版本的TCL,您的数据库可以在其存储的函数中使用.在您疯狂地在所有数据库中安装不受限制的TCL过程语言之前,请考虑到在将TCL / u语言添加数据库时必须准备足够的安全预防措施!我不会对错误配置的服务器负责,允许危险用户做坏事!

要安装TCL / u过程语言,必须编译(或使用二进制包)并安装Postgresql的TCL扩展.一旦确定已完成此操作,只需在unix shell提示符下键入以下数据库管理员即可.

# createlang pltclu [YOUR DATABASE NAME]

在[您的数据库名称]的位置,输入要添加存储过程的数据库名称.如果要将其添加到所有NEW数据库,请使用“template1”作为数据库名称.

在向DB添加新过程之前,请先执行以下操作:

替换文本<在此处输入您的邮件服务器>使用邮件服务器的完全限定域名.即mail.server.com.

替换文本<在此输入您的DATABASESERVE>使用数据库服务器的完全限定域名.即db.server.com.

完成上述操作后,您就可以开始了.

完成此步骤后,使用psql接口添加pgmail函数.只需复制pgmail.sql文件内容并将其粘贴到您的窗口中即可.您也可以通过键入以下内容直接从命令行加载它:

# psql -e [YOUR DATABASE NAME] < pgmail.sql

安装存储的函数后,只需按如下方式调用该过程即可.

select pgmail('Send From ','Send To ','Subject goes here','Plaintext message body here.');

select pgmail('Send From ','','HTML message body here.');

或者现在,多部分MIME!

select pgmail('Send From ','Plaintext message body here.','HTML message body here.');

在“发送自”和“发送至”字段中,您可以只包含电子邮件或<>中包含的电子邮件.用明文名称.

测试您的安装

我已经为您提供了一个示例.您必须首先用您的真实电子邮件地址替换example.execute.sql脚本中的字符串,并像上面的pltclu一样安装plpgsql语言.你可以通过输入createlang [你的数据库名称] plpgsql来做到这一点.

完成后,首先运行example.setup.sql.然后执行example.execute.sql脚本.如果一切正常,您将在邮箱中看到2封电子邮件.要删除此示例,请执行example.cleanup.sql脚本.

SMTP验证

pgmail不支持SMTP身份验证.大多数使用它的人要么在数据库服务器上设置本地邮件服务器以进行本地排队,然后将该设置用于所需的任何中继(使用auth).或者,或者,在/ etc / mail / access(或等效)文件中通常会有一个特殊规则,允许从数据库服务器使用的IP进行中继.显然,后一种选择不适用于GMail.

这背后的部分原因是,auth在pgmail的大型工作的交易性质方面会有问题.理想的解决方案是将EXIM服务器放在数据库服务器上,并将其作为智能中继服务器处理任何类型的身份验证.这是一个链接,有关于how to set SMTP server up的更多信息.

文件http://brandolabs.com/pgmail

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐