首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从shiny发送电子邮件

从shiny发送电子邮件
EN

Stack Overflow用户
提问于 2013-12-31 20:00:10
回答 3查看 15.9K关注 0票数 11

我是一个新的闪亮用户,我有兴趣创建一个web应用程序,访问者可以填写一些问题(取决于随机R数据),他们可以提交他们。

我的问题是找到通过电子邮件向我发送信息的方法,例如,每次他们提交数据时。

我是一名大学讲师,我认为这是评估我的学生的一个好方法。

EN

回答 3

Stack Overflow用户

发布于 2014-01-01 05:26:04

这是我写的一个闪亮的电子邮件发送器,用来在一个闪亮的应用中测试sendmailR包。在Linux平台上,我没有配置任何东西,应用程序可以完美地工作。用户在由shinyAce包生成和处理的文本区域中键入消息正文。

ui.R

代码语言:javascript
运行
复制
shinyUI(pageWithSidebar(

  headerPanel("Email sender"),

  sidebarPanel(
    textInput("from", "From:", value="from@gmail.com"),
    textInput("to", "To:", value="to@gmail.com"),
    textInput("subject", "Subject:", value=""),
    actionButton("send", "Send mail")
  ),

  mainPanel(    
    aceEditor("message", value="write message here")
  )

))

。R server.R

代码语言:javascript
运行
复制
library(shinyAce)
library(sendmailR)

shinyServer(function(input, output, session) {

  observe({
    if(is.null(input$send) || input$send==0) return(NULL)
    from <- isolate(input$from)
    to <- isolate(input$to)
    subject <- isolate(input$subject)
    msg <- isolate(input$message)
    sendmail(from, to, subject, msg)
  })

})
票数 8
EN

Stack Overflow用户

发布于 2013-12-31 20:18:35

R绝对可以发送电子邮件。在谷歌上搜索R send email可以找到sendmailR包,它可以从CRAN获得。还可以查看以下内容:

票数 1
EN

Stack Overflow用户

发布于 2013-12-31 21:17:19

这应该是一个很好的开始:

代码语言:javascript
运行
复制
library(shiny)
ui <- pageWithSidebar(
  headerPanel("fill this and send"),
  sidebarPanel(

  ),
  mainPanel(
    textInput("name", "Name:", ""),
    textInput("body", "Body:", ""),
    actionButton("goButton",label = "Send this")

  )
)


server <- function(input, output) {
  observe({
    # Take a dependency on input$goButton
    if (input$goButton == 0)
      return(NULL)
    # Use isolate() to avoid dependency on input$goButton
    isolate({
      info <- data.frame(subject=paste("New info from:",input$name),
                         body = info$body)
      InfromMe(info)
    })
  })
}
runApp(list(ui=ui,server=server))

其中inforMe,是使用PaulHimstra answer的邮件函数:

代码语言:javascript
运行
复制
#####send plain email
InfromMe <- function(info){
  from <- "you@account.com"
  to <- "recipient@account.com"
  subject <- info$subject
  body <- info$body                    
  mailControl=list(smtpServer="serverinfo")
  sendmail(from=from,to=to,subject=subject,msg=body,control=mailControl)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20857068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档