2012-09-06 16 views
6

Estoy tratando de enviar correo con el smtp de gmail en pharo con zodiac en la máquina CentOS. Estoy recibiendo el siguiente error.Envío de correo zodiac en Pharo smalltalk

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

que había descargado y poner el "so.SqueakSSL" en el directorio de la máquina virtual, junto con otros archivos .so y utilizado "chmod 777 so.SqueakSSL". Pero aún muestra el error. ¿Me falta algo? El código del área de trabajo es:

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

Qué VM? Asegúrese de utilizar las últimas versiones de nuestro [servidor de compilación] (https://ci.lille.inria.fr/pharo/view/Cog/job/Cog-VM/) – camillobruni

+0

Tenga en cuenta que este código y las respuestas se refieren a una versión pharo bastante antigua, y ya no se aplica a las versiones actuales. –

Respuesta

3

Falta el complemento SSL, porque no está incluido en Pharos anterior. Pero si descarga un clic para la versión de verano Pharo 1.4 o posterior, debería funcionar de inmediato, porque el complemento está en el lugar correcto, configurado correctamente y para las tres plataformas (Linux, OS/X y Windows).

+1

exactamente, usamos el plugin SSL todos los días al interactuar con el rastreador de problemas de google desde un script Pharo – camillobruni

0

Si está en Linux que sólo puede hacer un enlace simbólico a partir del archivo en el directorio so.SqueakSSL VM a uno llamado SqueakSSL

por ejemplo,

ln -s so.SqueakSSL SqueakSSL

y la máquina virtual, la encontrará.

3

Hace unos días tuve un problema similar en ScientificLinux, que es muy similar a CentOS. El problema era que las bibliotecas requerían libssl.so.0.9.8 y libcrypto.so.0.9.8 pero existían como libssl.so.0.9.8e y 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 

La solución fue crear dos enlaces simbólicos:

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