Zodiac mail sending in Pharo smalltalk
Asked Answered
S

3

6

I am trying to send mail with the gmail smtp in pharo with zodiac in CentOS machine. I am receiving the following error.

"SSL/TLS plugin initialization failed. VM missing plugin? " 

I had downloaded and put the "so.SqueakSSL" in the virtual machine directory along with other .so files and used "chmod 777 so.SqueakSSL" . But still showing the error.Am I missing something ? The workspace code is:

Gofer it
    squeaksource: 'Zodiac';
    package: 'Zodiac-Core';
    package: 'Zodiac-Tests';
    package: 'Zodiac-Extra';
    load.

  "Load extra Zinc support for Zodiac"

Gofer it
squeaksource: 'ZincHTTPComponents';
package: 'Zinc-Zodiac';
load.
| mailMessage |
mailMessage := MailMessage empty.
mailMessage setField: 'subject' toString: 'ZdcSecureSMTPClient Test'.
mailMessage body: (MIMEDocument 
                 contentType: 'text/plain' 
                 content: 'This is test from Pharo Smalltalk').
ZdcSecureSMTPClient
sendUsingGMailAccount: '[email protected]' 
password: 'mypassword'
to: '[email protected]' 
message: mailMessage.
Scoles answered 6/9, 2012 at 5:46 Comment(2)
Which VM? Make sure to use the latest versions from our build serverVinegar
Please note that this code & the answers refer to a rather old pharo version, and no longer apply to current versions.Tjaden
E
3

There is SSL plugin missing, because it is not included in earlier Pharos. But if you download the one-click for Pharo 1.4 Summer Release or later, it should work out of the box, because the plugin is on right place, correctly set and for all three platforms (Linux, OS/X and Windows).

Equuleus answered 6/9, 2012 at 6:29 Comment(1)
exactly, we use the SSL plugin daily when interacting with the google issue tracker from a Pharo scriptVinegar
A
3

A few days ago I had a similar problem in a ScientificLinux, which is very similar to CentOS. The problem was that the libraries were required libssl.so.0.9.8 and libcrypto.so.0.9.8 but existed as libssl.so.0.9.8e and libcrypto.so.0.9.8e.

# ldd /opt/smalltalk/pharovm14A/libSqueakSSL.so 
        linux-gate.so.1 =>  (0x00bfb000)
        libssl.so.0.9.8 => not found
        libcrypto.so.0.9.8 => not found
        libc.so.6 => /lib/libc.so.6 (0x006ce000)
        /lib/ld-linux.so.2 (0x0055a000)

# ls /usr/lib/libssl.so.0.9.8* /usr/lib/libcrypto.so.0.9.8*
/usr/lib/libcrypto.so.0.9.8e  /usr/lib/libssl.so.0.9.8e

The solution was to create two symbolic links:

# ln -s /usr/lib/libssl.so.0.9.8e /usr/lib/libssl.so.0.9.8
# ln -s /usr/lib/libcrypto.so.0.9.8e /usr/lib/libcrypto.so.0.9.8

# ldd /opt/smalltalk/pharovm14A/libSqueakSSL.so 
/opt/smalltalk/pharovm14A/libSqueakSSL.so: /usr/lib/libcrypto.so.0.9.8: no version information available (required by /opt/smalltalk/pharovm14A/libSqueakSSL.so)
/opt/smalltalk/pharovm14A/libSqueakSSL.so: /usr/lib/libssl.so.0.9.8: no version information available (required by /opt/smalltalk/pharovm14A/libSqueakSSL.so)
        linux-gate.so.1 =>  (0x0062d000)
        libssl.so.0.9.8 => /usr/lib/libssl.so.0.9.8 (0x008a8000)
        libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x00110000)
        libc.so.6 => /lib/libc.so.6 (0x00a3f000)
        libgssapi_krb5.so.2 => /lib/libgssapi_krb5.so.2 (0x0025f000)
        libkrb5.so.3 => /lib/libkrb5.so.3 (0x0029e000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0x00eee000)
        libk5crypto.so.3 => /lib/libk5crypto.so.3 (0x00374000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x00e41000)
        libdl.so.2 => /lib/libdl.so.2 (0x00e0c000)
        libz.so.1 => /lib/libz.so.1 (0x00477000)
        /lib/ld-linux.so.2 (0x007f9000)
        libkrb5support.so.0 => /lib/libkrb5support.so.0 (0x003a0000)
        libkeyutils.so.1 => /lib/libkeyutils.so.1 (0x003ab000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x005fd000)
        libselinux.so.1 => /lib/libselinux.so.1 (0x009b4000)
Architect answered 17/9, 2012 at 14:10 Comment(0)
L
0

If you are on Linux you can just make a symbolic link from the so.SqueakSSL file on the VM directory to one named SqueakSSL

e.g.

ln -s so.SqueakSSL SqueakSSL

and the VM will find it.

Lynnelynnea answered 13/9, 2012 at 20:17 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.