0
我有mailR(R語言包發送電子郵件)嘗試從我的Gmail帳戶發送一些電子郵件。 它完美地從Windows工作,但從Linux我得到下面的錯誤。 在下面的例子中,我已經取代了電子郵件,用戶名和密碼。mailR連接拒絕從Linux但不是從Windows
代碼:
library(mailR)
emails <- c("[email protected]")
send.emails <- function() {
for(x in emails){
send.mail(from = from1,
to = x,
subject = subject1,
body = body1,
smtp = list(host.name = "smtp.gmail.com", port = 465, user.name = username,
passwd = password, ssl = TRUE),
authenticate = TRUE,
send = TRUE)
}
}
send.emails()
錯誤:
> send.emails()
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:465
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1410)
at org.apache.commons.mail.Email.send(Email.java:1437)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.NULL
java:606)
at RJavaTools.invokeMethod(RJavaTools.java:386)
Caused by: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.gmail.com, 465; timeout 60000;
nested exception is:
java.net.ConnectException: Connection refused
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1984)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:656)
at javax.mail.Service.connect(Service.java:367)
at javax.mail.Service.connect(Service.java:226)
at javax.mail.Service.connect(Service.java:175)
at javax.mail.Transport.send0(Transport.java:253)
at javax.mail.Transport.send(Transport.java:124)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1400)
... 6 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:299)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:208)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1950)
... 13 more
Show Traceback
Rerun with Debug
Error: EmailException (Java): Sending the email to the following server failed : smtp.gmail.com:465
同樣,我沒有得到任何錯誤都在Windows和電子郵件經歷,當我在linux上運行相同的腳本,我得到的所有那些錯誤。拒絕連接...
如果我可以從我的Linux機器上運行這個腳本,那會很棒。謝謝!
錯誤是,它無法連接到端口465上的'smtp.gmail.com'。您是否驗證過Linux防火牆未阻止流量?您是否測試了是否可以從終端提示符處ping「smtp.gmail.com」,並通過'openssl s_client -connect smtp.gmail.com:465 -crlf'驗證端口連接性?這實際上不是R或apache問題。 – hrbrmstr 2014-11-09 11:31:30
謝謝!我將編輯該問題。我只是習慣了R之間的平臺之間的可移植性問題,我沒有意識到同儕監護人可能會阻止smtp服務器,特別是因爲它不明顯地阻止任何其他谷歌服務器。 – variable 2014-11-09 16:21:45