[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