Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.
like image 279
VARUN ISAC Avatar asked Sep 06 '12 05:09

VARUN ISAC


2 Answers

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

like image 149
Janko Mivšek Avatar answered Nov 06 '22 19:11

Janko Mivšek


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)
like image 28
tongadall Avatar answered Nov 06 '22 20:11

tongadall