0

我无法sendmailR通过 Outlook 发送包含包裹的电子邮件。它在我的主计算机(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吗?两者(主机和托管)之间的网络设置为“桥接”。我的最终目标是使用闪亮的服务器创建一个能够通过主机的主 Outlook 发送电子邮件的应用程序,目前,电子邮件完美地放在一边工作。

4

1 回答 1

1

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

于 2016-04-05T14:54:35.163 回答