虚拟机上的 SendmailR

SendmailR on virtual machine

我在通过 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?两者(主机和托管)之间的网络设置为 "bridge"。我的最终目标是使用闪亮的服务器创建一个能够通过主机的主 Outlook 发送电子邮件的应用程序,目前,电子邮件搁置工作完美。

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

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

其次,尝试从 VM ubuntu 远程登录到您的 SMTP 服务器,例如

telnet your-smtp-server 22

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

(更新) 要让您的 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