简体   繁体   English

在Linux上尖叫SMTP

[英]Squeak SMTPs on Linux

I am using the Squeak 5 class SecureSMTPClient to send e-Mails over SSL/TLS. 我正在使用Squeak 5类SecureSMTPClient通过SSL / TLS发送电子邮件。

It works fine on my Windows machine (thanks to the answer to that question ). 在我的Windows机器上,它运行正常(这要归功于该问题的答案)。

However, on Linux i get: 但是,在Linux上,我得到:

Error: primitiveSSLCreate failed

And it prints in a console (but only the first time the image attempts to send the mail): 并在控制台中打印(但仅在图像第一次尝试发送邮件时打印):

# ioLoadModule(/home/squeak5vm/SqueakSSL):
  /home/squeak5vm/SqueakSSL: undefined symbol: clock_gettime

Squeak "primitives" are functions that talk to the platform and libraries. 吱吱声的“原语”是与平台和库对话的功能。 My guess is, that this Linux does not provide some version of some SSL/TLS library that Squeak expects. 我的猜测是,此Linux没有提供Squeak期望的某些SSL / TLS库的某些版本。 But what exactly does Squeak expect? 但究竟是什么佳乐期待?


Additional infos: 其他信息:

The output of ldd /home/squeak5vm/SqueakSSL is: ldd /home/squeak5vm/SqueakSSL的输出是:

linux-gate.so.1 =>  (0xb7757000)
libc.so.6 => /lib32/libc.so.6 (0xb7392000)
/lib/ld-linux.so.2 (0xb7758000)

The version of the SqueakSSL plugin you are using is compiled against OpenSSL, which in turn required clock_gettime . 您使用的SqueakSSL插件的版本是针对OpenSSL编译的,而OpenSSL则需要clock_gettime

Note the that the man page says 注意man页上说

 Link with -lrt (only for glibc versions before 2.17).

Apparently, your SqueakSSL binary was compiled on a system later than glibc 2.17. 显然,您的SqueakSSL二进制文件是在glibc 2.17之后的系统上编译的。

Here are some options: 以下是一些选项:

  1. Try the SqueakSSL binary from https://github.com/squeak-smalltalk/squeakssl/releases which are statically linked against LibreSSL. 尝试从https://github.com/squeak-smalltalk/squeakssl/releases中的SqueakSSL二进制文件(与LibreSSL静态链接)。 Note: They might be some weeks out of date. 注意:它们可能已经过时了几周。
  2. See whether you could use an updated Linux version with glibc >= 2.17 查看是否可以使用glibc> = 2.17的更新的Linux版本
  3. Try something like re-linking or pre-loading (see How to relink existing shared library with extra object file ), for example 尝试进行类似重新链接或预加载的操作(例如,请参阅如何使用额外的目标文件重新链接现有的共享库 )。

    LD_PRELOAD=/usr/lib32/librt.so /path/to/squeak

We hope to sort this out soon-ish. 我们希望尽快解决这个问题。 Maybe you want to open an issue at https://github.com/OpenSmalltalk/ 也许您想在https://github.com/OpenSmalltalk/打开一个问题

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM