2012-09-06 8 views
6

Próbuję wysłać pocztę z gmail smtp w pharo ze znakiem zodiaku na komputerze CentOS. Otrzymuję następujący błąd.Wysyłanie e-maili z Zodiakiem w Pharo smalltalk

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

ja pobrać i umieścić „so.SqueakSSL” w katalogu maszyn wirtualnych wraz z innymi plikami i używane .so „chmod 777 so.SqueakSSL”. Ale wciąż pokazuje błąd. Czy coś mi brakuje? Kod roboczy jest:

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. 
+0

Które VM? Upewnij się, że używasz najnowszych wersji z naszego [serwer budowania] (https://ci.lille.inria.fr/pharo/view/Cog/job/Cog-VM/) – camillobruni

+0

Należy pamiętać, że ten kod i odpowiedzi odnoszą się do dość stara wersja pharo i nie ma już zastosowania do aktualnych wersji. –

Odpowiedz

3

Istnieje plugin SSL brakuje, ponieważ nie jest zawarty we wcześniejszym Pharos. Ale jeśli pobierzesz jedno kliknięcie na Pharo 1.4 Summer Release lub później, powinno to działać po wyjęciu z pudełka, ponieważ wtyczka jest we właściwym miejscu, poprawnie ustawiona i dla wszystkich trzech platform (Linux, OS/X i Windows).

+1

Dokładnie używamy wtyczki SSL codziennie podczas interakcji z modułem do śledzenia błędów Google ze skryptu Pharo – camillobruni

0

Jeśli jesteś na Linuksie można po prostu zrobić dowiązania symbolicznego z pliku so.SqueakSSL w katalogu VM jednej nazwie SqueakSSL

np

ln -s so.SqueakSSL SqueakSSL

i VM, znajdzie je.

3

Kilka dni temu miałem podobny problem w ScientificLinux, który jest bardzo podobny do CentOS. Problem polegał na tym, że biblioteki były wymagane libssl.so.0.9.8 i libcrypto.so.0.9.8, ale istniały jako libssl.so.0.9.8e i 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 

Rozwiązaniem było utworzyć dwa symboliczne linki:

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