VARUN ISAC
VARUN ISAC

Reputation: 443

Zodiac mail sending in Pharo smalltalk

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.

Upvotes: 6

Views: 925

Answers (3)

tongadall
tongadall

Reputation: 51

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)

Upvotes: 3

Paul DeBruicker
Paul DeBruicker

Reputation: 166

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.

Upvotes: 0

Janko Mivšek
Janko Mivšek

Reputation: 3964

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).

Upvotes: 3

Related Questions