首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在普通lisp上使用usocket的超时错误

在普通lisp上使用usocket的超时错误
EN

Stack Overflow用户
提问于 2018-03-01 02:09:16
回答 1查看 312关注 0票数 0

我在使用cl-smtp:send-email时遇到了问题,这似乎是由于调用usocket:socket-connect时出现了超时错误。

以下是我要做的事:

代码语言:javascript
复制
(cl-smtp:send-email "outgoing.mit.edu" "m_klein@mit.edu" 
                    (list "m_klein@mit.edu") "s1" "m1”)

这似乎是发生故障的调用(根据回溯):

代码语言:javascript
复制
(usocket:socket-connect "outgoing.mit.edu" 25
                        :protocol :stream
                        :element-type '(unsigned-byte 8)
                        :timeout nil
                        :deadline nil
                        :nodelay nil
                        :local-host nil
                        :local-port nil)

以下是错误:

错误:错误#<USOCKET:TIMEOUT-ERROR #x302001E5FDED> 在执行时:USOCKET::引发-错误从-ID,进程侦听器(475)。

奇怪的是,相同的函数调用在其他机器上也能工作,但在我目前的mac笔记本电脑或我也一直在使用的基于云的mac上却不起作用。

我在OS10.13.3上的MacBook Pro上运行ClozureCommonLisp1.11.1

下面是回溯FYI:https://imgur.com/a/e2xcf的快照

有什么想法吗?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2018-03-07 08:00:26

由于您使用的是外部服务器,首先需要检查地址的正确性(使用telnet连接)、端口,可能还需要进行身份验证。由于您正在使用cl,所以首先我建议您测试它的工作方式,因为测试smptp的简单方法是在码头容器中使用邮件捕获器:

代码语言:javascript
复制
docker run -d -p 1080:1080 -p 1025:1025 --name mailcatcher schickling/mailcatcher

docker ps | grep mailcatcher
6fb056fceb6b        schickling/mailcatcher   "mailcatcher -f --ip…"   9 months ago        Up 18 minutes       0.0.0.0:1025->1025/tcp, 0.0.0.0:1080->1080/tcp   mailcatcher

然后您可以在web浏览器localhost:1080中访问我们正在发送的邮件,并将邮件发送到localhost:1025。

为了测试SMTP,我建议服务器使用telnet:

代码语言:javascript
复制
telnet                                                                                                                 
telnet> o localhost 1025
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 EventMachine SMTP Server
EHLO localhost
250-Ok EventMachine SMTP Server
250-NO-SOLICITING
250 SIZE 20000000

关于那个这里有一篇很棒的文章

当您确信这一点时,您可以使用lisp尝试获得这些需求:

代码语言:javascript
复制
CL-USER> (cl-smtp:send-email "127.0.0.1" "antonio.querol@example.com" "pedro.lopez@example.com" "Say Hello" "Hello World"
                    :port 1025)
("Ok")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49041560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档