[R-br] Mandar email pelo R

Cleber N.Borges klebyn em yahoo.com.br
Quarta Março 13 17:47:33 BRT 2013


no help do pacote diz ter uma função 'sendmail_options'

com um parametro 'smtpPortSMTP' especificamente
para mudar a porta 25.

-----------
   . smtpPortSMTP port to use. Usually 25 but some institutions
           require the use of the submission service (port 587).
----------

talvez vale a pena fazer um ultimo teste com esse detalhe...

não vi a thread toda, se já tentou isso, me desculpe pela bola fora,
caso não, fica a dica


cleber













Em 13/03/2013 17:31, Pedro Emmanuel Alvarenga Americano do Brasil escreveu:
> Daniel,
>
> Quando voce diz um sendmail externo seria do tipo ter um thunderbird 
> configurado e o bat executaria o thunderbird e mandaria a mensagem com 
> o arquivo anexado?
>
> Bom... tem alguns bacanas na internet que ja colocaram umas coisas 
> assim, mas se for assim, eu preferiria fazer manualmente mesmo. Eu 
> queria simplificar e não complicar.
>
> Quanto a função send.email na mensagem anterior, voce tem algum 
> comentário porque dá aquele erro de conexão?
>
> Abraço,
>
> Dr. Pedro Emmanuel A. A. do Brasil
> Curriculum Lattes: http://lattes.cnpq.br/6597654894290806
> Instituto de Pesquisa Clínica Evandro Chagas
> Fundação Oswaldo Cruz
> Rio de Janeiro - Brasil
> Av. Brasil 4365,
> CEP 21040-360,
> Tel 55 21 3865-9648
> email: pedro.brasil em ipec.fiocruz.br <mailto:pedro.brasil em ipec.fiocruz.br>
> email: emmanuel.brasil em gmail.com <mailto:emmanuel.brasil em gmail.com>
>
> ---Apoio aos softwares livres
> www.zotero.org <http://www.zotero.org> - gerenciamento de referências 
> bibliográficas.
> www.broffice.org <http://www.broffice.org> ou www.libreoffice.org 
> <http://www.libreoffice.org/> - textos, planilhas ou apresentações.
> www.epidata.dk <http://www.epidata.dk> - entrada de dados.
> www.r-project.org <http://www.r-project.org> - análise de dados.
> www.ubuntu.com <http://www.ubuntu.com> - sistema operacional
>
>
> Em 13 de março de 2013 17:34, Daniel Ikenaga <oladani em gmail.com 
> <mailto:oladani em gmail.com>> escreveu:
>
>     Fiz alguns testes, mas, é mesmo a limitação do package. Não é
>     possível mudar a porta 25. Não
>     consegui criar uma porta 25 em um servidor para testar.
>
>     Penso em duas saídas:
>
>     Instalar um servidor com porta 25, o que acho arriscado, pois
>     facilmente cairia na black list e spam,
>     ou fazer um bat num sendmail externo para ler a atualização de um
>     arquivo que seria salvo do R.
>
>
>     Abraços
>
>      Daniel Ikenaga
>     *@dialetica* <http://twitter.com/dialetica>
>
>
>     2013/3/13 Pedro Emmanuel Alvarenga Americano do Brasil
>     <emmanuel.brasil em gmail.com <mailto:emmanuel.brasil em gmail.com>>
>
>         Daniel,
>
>         Mesmo mudando a porta, a messagem de erro continua. Acredito
>         que dentro da função deve ter um bug que mantem a porta 25
>         apesar de informar outra porta como argumento da função.
>
>         > sendmail(from, to, subject,
>         body,control=list(smtpPortSMTP=587,verboseShow=TRUE,smtpServer="ASPMX.L.GOOGLE.COM
>         <http://ASPMX.L.GOOGLE.COM>"))
>         Erro em socketConnection(host = server, port = port, blocking
>         = TRUE) :
>           não é possível abrir a conexão
>         Além disso: Mensagens de aviso perdidas:
>         In socketConnection(host = server, port = port, blocking = TRUE) :
>         ASPMX.L.GOOGLE.COM:25 <http://ASPMX.L.GOOGLE.COM:25> cannot be
>         opened
>
>         Por enquanto vou fazendo manualmente mesmo.
>
>         Abraço forte,
>
>
>
>
>         Dr. Pedro Emmanuel A. A. do Brasil
>         Curriculum Lattes: http://lattes.cnpq.br/6597654894290806
>         Instituto de Pesquisa Clínica Evandro Chagas
>         Fundação Oswaldo Cruz
>         Rio de Janeiro - Brasil
>         Av. Brasil 4365,
>         CEP 21040-360,
>         Tel 55 21 3865-9648 <tel:55%2021%203865-9648>
>         email: pedro.brasil em ipec.fiocruz.br
>         <mailto:pedro.brasil em ipec.fiocruz.br>
>         email: emmanuel.brasil em gmail.com
>         <mailto:emmanuel.brasil em gmail.com>
>
>         ---Apoio aos softwares livres
>         www.zotero.org <http://www.zotero.org> - gerenciamento de
>         referências bibliográficas.
>         www.broffice.org <http://www.broffice.org> ou
>         www.libreoffice.org <http://www.libreoffice.org/> - textos,
>         planilhas ou apresentações.
>         www.epidata.dk <http://www.epidata.dk> - entrada de dados.
>         www.r-project.org <http://www.r-project.org> - análise de dados.
>         www.ubuntu.com <http://www.ubuntu.com> - sistema operacional
>
>
>         Em 12 de março de 2013 15:16, Daniel Ikenaga
>         <oladani em gmail.com <mailto:oladani em gmail.com>> escreveu:
>
>             Desconheço a utilização avançada de R, mas teu problema
>             não seria na porta 25?
>
>             Faz mais de 2 mês que o Google não opera mais com a porta
>             25, só com a 587 em SSL, daí,
>             se não houver compatibilidade com smtp em ssl, fosse o
>             caso de usar outro servidor.
>
>
>             Abraços
>
>              Daniel Ikenaga
>             *@dialetica* <http://twitter.com/dialetica>
>
>
>             On Mon, Mar 11, 2013 at 10:23 AM, Pedro Emmanuel Alvarenga
>             Americano do Brasil <emmanuel.brasil em gmail.com
>             <mailto:emmanuel.brasil em gmail.com>> wrote:
>
>                 Amigos de R,
>
>                 Sei que essa questão volta algumas vezes na lista mas
>                 estou empacado. Estou fazendo um data management de um
>                 projeto em que consiste em repetidas vezes, tipo toda
>                 semana, verificar quantos voluntários entraram no
>                 proejto, dados inconsistentes, dados ausentes e coisas
>                 assim. Então, eu consegui fazer um script para esse
>                 fim em que gera um arquivo com algumas tabelas e
>                 graficos.
>
>                 Agora eu gostaria de incluir nesse script o envio de
>                 um email pra mim mesmo com esse arquivo, para que eu
>                 possa verificar e depois encaminhar para os outros
>                 participantes. Sei que existe o sendmailR, mas não
>                 estou conseguindo fazer funcionar. Encontrei um
>                 catatau de gente referindo o mesmo erro em diversos
>                 diferentes foruns:
>
>                 > sendmail(from, to, subject,
>                 body,control=list(smtpServer="ASPMX.L.GOOGLE.COM
>                 <http://ASPMX.L.GOOGLE.COM>"))
>                 Erro em socketConnection(host = server, port = port,
>                 blocking = TRUE) :
>                   não é possível abrir a conexão
>                 Além disso: Mensagens de aviso perdidas:
>                 In socketConnection(host = server, port = port,
>                 blocking = TRUE) :
>                 ASPMX.L.GOOGLE.COM:25 <http://ASPMX.L.GOOGLE.COM:25>
>                 cannot be opened
>
>
>                 Depois, consegui encontrar essa função em um dos
>                 foruns. O autor fala que funciona, mas comigo tem dado
>                 um erro de conectividade e eu não sabendo como dar a
>                 volta nesse erro. Será que tem alguma relação com o proxy?
>
>                 > send.email
>                 function(to, from, subject,
>                   message, attachment=NULL,
>                   username, password,
>                   server="smtp.gmail.com:587
>                 <http://smtp.gmail.com:587>",
>                 confirmBeforeSend=TRUE){
>                   # to: a list object of length 1.  Using
>                 list("Recipient" = "recip em somewhere.net
>                 <mailto:recip em somewhere.net>") will send the message
>                 to the address but
>                   #     the name will appear instead of the address.
>                   # from: a list object of length 1.  Same behavior as
>                 'to'
>                   # subject: Character(1) giving the subject line.
>                   # message: Character(1) giving the body of the message
>                   # attachment: Character(1) giving the location of
>                 the attachment
>                   # username: character(1) giving the username.  If
>                 missing and you are using Windows, R will prompt you
>                 for the username.
>                   # password: character(1) giving the password.  If
>                 missing and you are using Windows, R will prompt you
>                 for the password.
>                   # server: character(1) giving the smtp server.
>                   # confirmBeforeSend: Logical.  If True, a dialog box
>                 appears seeking confirmation before sending the
>                 e-mail.  This is to
>                   #            prevent me to send multiple updates to
>                 a collaborator while I am working interactively.
>                   if (!is.list(to) | !is.list(from)) stop("'to' and
>                 'from' must be lists")
>                   if (length(from) > 1) stop("'from' must have length 1")
>                   if (length(to) > 1) stop("'send.email' currently
>                 only supports one recipient e-mail address")
>                   if (length(attachment) > 1) stop("'send.email' can
>                 currently send only one attachment")
>                   if (length(message) > 1){
>                 stop("'message' must be of length 1")
>                     message <- paste(message, collapse="\\n\\n")
>                   }
>                   if (is.null(names(to))) names(to) <- to
>                   if (is.null(names(from))) names(from) <- from
>                   if (!is.null(attachment)) if
>                 (!file.exists(attachment)) stop(paste("'", attachment,
>                 "' does not exist!", sep=""))
>                   if (missing(username)) username <-
>                 winDialogString("Please enter your e-mail username", "")
>                   if (missing(password)) password <-
>                 winDialogString("Please enter your e-mail password", "")
>                 require(rJython)
>                   rJython <- rJython()
>
>                 rJython$exec("import smtplib")
>                 rJython$exec("import os")
>                 rJython$exec("from email.MIMEMultipart import
>                 MIMEMultipart")
>                 rJython$exec("from email.MIMEBase import MIMEBase")
>                 rJython$exec("from email.MIMEText import MIMEText")
>                 rJython$exec("from email.Utils import COMMASPACE,
>                 formatdate")
>                 rJython$exec("from email import Encoders")
>                 rJython$exec("import email.utils")
>
>                 mail<-c(
>                   #Email settings
>                 paste("fromaddr = '", from, "'", sep=""),
>                 paste("toaddrs  = '", to, "'", sep=""),
>                   "msg = MIMEMultipart()",
>                 paste("msg.attach(MIMEText('", message, "'))", sep=""),
>                 paste("msg['From'] = email.utils.formataddr(('",
>                 names(from), "', fromaddr))", sep=""),
>                 paste("msg['To'] = email.utils.formataddr(('",
>                 names(to), "', toaddrs))", sep=""),
>                 paste("msg['Subject'] = '", subject, "'", sep=""))
>                   if (!is.null(attachment)){
>                     mail <- c(mail,
>                 paste("f = '", attachment, "'", sep=""),
>                  "part=MIMEBase('application', 'octet-stream')",
>                  "part.set_payload(open(f, 'rb').read())",
>                  "Encoders.encode_base64(part)",
>                  "part.add_header('Content-Disposition', 'attachment;
>                 filename=\"%s\"' % os.path.basename(f))",
>                  "msg.attach(part)")
>                   }
>
>                 #SMTP server credentials
>                   mail <- c(mail,
>                 paste("username = '", username, "'", sep=""),
>                 paste("password = '", password, "'", sep=""),
>
>                 #Set SMTP server and send email, e.g., google mail
>                 SMTP server
>                 paste("server = smtplib.SMTP('", server, "')", sep=""),
>                 "server.ehlo()",
>                 "server.starttls()",
>                 "server.ehlo()",
>                 "server.login(username,password)",
>                 "server.sendmail(fromaddr, toaddrs, msg.as_string())",
>                 "server.quit()")
>
>                 message.details <-
>                 paste("To:   ", names(to), " (", unlist(to), ")", "\n",
>                 "From:             ", names(from), " (", unlist(from),
>                 ")", "\n",
>                 "Using server:     ", server, "\n",
>                 "Subject:          ", subject, "\n",
>                 "With Attachments: ", attachment, "\n",
>                 "And the message:\n", message, "\n", sep="")
>
>                   if (confirmBeforeSend)
>                    SEND <- winDialog("yesnocancel", paste("Are you
>                 sure you want to send this e-mail to ", unlist(to),
>                 "?", sep=""))
>                    else SEND <- "YES"
>                   if (SEND %in% "YES"){
>                 jython.exec(rJython,mail)
>                 cat(message.details)
>                   }
>                   else cat("E-mail Delivery was Canceled by the User")
>                 }
>
>                 from <- list("Recipient" = "emmanuel.brasil em gmail.com
>                 <mailto:emmanuel.brasil em gmail.com>")
>                 to <- list("Recipient" = "emmanuel.brasil em gmail.com
>                 <mailto:emmanuel.brasil em gmail.com>")
>                 subject <- paste0("Pendencias Nomograma de ",Sys.time())
>                 message <- "Mensagem automática com relatório de
>                 pendências do projeto Nomograma."
>                 attachment <-
>                 'c:/banco/nomograma/Controle_recrutamento.doc'
>                 >
>                 send.email(to,from,subject,message,attachment,'emmanuel.brasil em gmail.com
>                 <mailto:emmanuel.brasil em gmail.com>','...',confirmBeforeSend=FALSE)
>                 Erro em jython.exec(rJython, mail) : (62, 'Connection
>                 refused')
>
>                 Qualquer luz é bem vinda.
>
>                 Abraço forte,
>
>                 Dr. Pedro Emmanuel A. A. do Brasil
>                 Curriculum Lattes: http://lattes.cnpq.br/6597654894290806
>                 Instituto de Pesquisa Clínica Evandro Chagas
>                 Fundação Oswaldo Cruz
>                 Rio de Janeiro - Brasil
>                 Av. Brasil 4365,
>                 CEP 21040-360,
>                 Tel 55 21 3865-9648 <tel:55%2021%203865-9648>
>                 email: pedro.brasil em ipec.fiocruz.br
>                 <mailto:pedro.brasil em ipec.fiocruz.br>
>                 email: emmanuel.brasil em gmail.com
>                 <mailto:emmanuel.brasil em gmail.com>
>
>                 ---Apoio aos softwares livres
>                 www.zotero.org <http://www.zotero.org> - gerenciamento
>                 de referências bibliográficas.
>                 www.broffice.org <http://www.broffice.org> ou
>                 www.libreoffice.org <http://www.libreoffice.org/> -
>                 textos, planilhas ou apresentações.
>                 www.epidata.dk <http://www.epidata.dk> - entrada de dados.
>                 www.r-project.org <http://www.r-project.org> - análise
>                 de dados.
>                 www.ubuntu.com <http://www.ubuntu.com> - sistema
>                 operacional
>
>                 _______________________________________________
>                 R-br mailing list
>                 R-br em listas.c3sl.ufpr.br <mailto:R-br em listas.c3sl.ufpr.br>
>                 https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>                 Leia o guia de postagem
>                 (http://www.leg.ufpr.br/r-br-guia) e forneça código
>                 mínimo reproduzível.
>
>
>
>             _______________________________________________
>             R-br mailing list
>             R-br em listas.c3sl.ufpr.br <mailto:R-br em listas.c3sl.ufpr.br>
>             https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>             Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia)
>             e forneça código mínimo reproduzível.
>
>
>
>         _______________________________________________
>         R-br mailing list
>         R-br em listas.c3sl.ufpr.br <mailto:R-br em listas.c3sl.ufpr.br>
>         https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>         Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e
>         forneça código mínimo reproduzível.
>
>
>
>     _______________________________________________
>     R-br mailing list
>     R-br em listas.c3sl.ufpr.br <mailto:R-br em listas.c3sl.ufpr.br>
>     https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
>     Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e
>     forneça código mínimo reproduzível.
>
>
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130313/9cc2a250/attachment.html>


Mais detalhes sobre a lista de discussão R-br