SendmailR在虚拟机上

时间:2016-04-05 14:37:53

标签: r outlook virtualbox sendmailr

我无法通过Outlook发送包含sendmailR的电子邮件。 它在我的主计算机(Windows机器)上工作正常,但是当我在运行Ubuntu的虚拟机上尝试它时,我收到以下错误:

Error in socketConnection(host = server, port = port, blocking = TRUE) : 
  cannot open the connection
In addition: Warning message:
In socketConnection(host = server, port = port, blocking = TRUE) :
  MYADRESSE.local:25 cannot be opened

我使用了以下代码,在主机上再次正常工作。

library(sendmailR)
from <- "myname@company.com"
to <- "myname@company.com"
subject <- "Performance Result"
body <- "This is the result of the test:"
mailControl=list(smtpServer="MYADRESSE.local")
sendmail(from=from,to=to,subject=subject,msg=body,control=mailControl)

我是否必须设置虚拟机才能访问MYADRESSE.local?两者之间的网络(主机和托管)设置为&#34;桥接&#34;。我的最终目标是使用闪亮的服务器来创建一个能够通过主机主Outlook发送电子邮件的应用程序,目前,电子邮件可以完美地放在一边工作。

1 个答案:

答案 0 :(得分:1)

Outlook是邮件客户端,sendmailR也是如此。我假设您的意思是,您通过您的Outlook邮件客户端也连接到的SMTP邮件服务器发送邮件。

首先,检查您是否可以从虚拟机ping您的SMTP邮件服务器。与Outlook相同的SMTP邮件服务器。

其次,尝试从VM ubuntu telnet到你的SMTP服务器,例如

telnet your-smtp-server 22

如果两者都不起作用,请查找有关将VM连接到LAN的问题。

(UPDATE) 要使Windows机器与MYADRESSE.local通信,主机文件中必须有一个设置。打开c:\ windows \ system32 \ drivers \ etc \ hosts,看看是否有条目。 如果条目显示

127.0.0.1  MYADRESSE.local 

这意味着您的Windows系统中有SMTP服务器设置。如果有任何其他地址,例如(只是例子,地址可以改变)

192.168.100.10  MYADDRESS.local

然后192.168.100.10是您的SMTP服务器地址。然后上面的ping,telnet工作显示应该使用这个IP地址。例如telnet 192.168.100.10 ...你的SendMailR应该使用这个IP地址,而不是MYADDRESS.local