使用OPA的邮件功能

时间:2011-09-23 10:52:02

标签: email opa

import stdlib.web.mail

from = {name="name" address={local="username" domain="gmail.com"}}
to = {name="name" address={local="username" domain="gmail.com"}}

r = Email.try_send(from, to, "Subject", {text = "This is Great!"})

server = Server.one_page_server("Mail", [], [], r)

我得到以下错误

Error
File "mail.opa", line 6, characters 4-66, (6:4-6:66 | 166-228)
Function was found of type
Email.email, Email.email, string, Email.content -> Email.send_status but
application expects it to be of type
{ address: { domain: string; local: string } / 'c.b; name: string } / 'c.a,
{ address: { domain: string; local: string } / 'c.d; name: string } / 'c.c,
string, { text: string } / 'c.e -> 'a.
Types string and { none } / { some: string } are not compatible
Hint:
  Error occurred through field name.

任何人都可以帮我解决Opa中的邮件功能吗?

1 个答案:

答案 0 :(得分:2)

此代码存在许多问题:

  • 请注意,在Email.email类型中,name字段是可选的;因此,如果您想要加入它,则应提供some("name"),而不仅仅是"name"
  • Server.one_page_server包含2个不是4的参数。
  • one_page_server的最后一个参数应该是页面的xhtml,而r是发送电子邮件的结果。

修复后,您的代码看起来像这样:

import stdlib.web.mail

from = {name=some("name") address={local="username" domain="gmail.com"}} : Email.email
to = {name=some("name") address={local="username" domain="gmail.com"}} : Email.email

page() =
  status = Email.try_send(from, to, "Subject", {text = "This is Great!"})
  <>Email sent</>

server = Server.one_page_server("Mail", page)