2012-09-06 32 views
6

Tôi đang cố gắng gửi thư bằng gmail smtp bằng pharo với cung hoàng đạo trong máy CentOS. Tôi nhận được lỗi sau.Thư hoàng tử gửi trong Pharo smalltalk

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

Tôi đã tải xuống và đặt "so.SqueakSSL" vào thư mục máy ảo cùng với các tệp .so khác và được sử dụng "chmod 777 so.SqueakSSL". Nhưng vẫn hiển thị error.Am tôi thiếu một cái gì đó? Mã vùng làm việc là:

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

nào VM? Đảm bảo sử dụng các phiên bản mới nhất từ ​​[build server] của chúng tôi (https://ci.lille.inria.fr/pharo/view/Cog/job/Cog-VM/) – camillobruni

+0

Xin lưu ý rằng mã này và câu trả lời liên quan đến phiên bản pharo khá cũ và không còn áp dụng cho các phiên bản hiện tại. –

Trả lời

3

Thiếu plugin SSL vì không có trong Pharos trước đó. Nhưng nếu bạn tải xuống một cú nhấp chuột cho bản phát hành mùa hè Pharo 1.4 hoặc mới hơn, nó sẽ hoạt động ra khỏi hộp, vì plugin nằm đúng vị trí, được đặt chính xác và cho cả ba nền tảng (Linux, OS/X và Windows).

+1

chính xác, chúng tôi sử dụng plugin SSL hàng ngày khi tương tác với trình theo dõi vấn đề của google từ tập lệnh Pharo – camillobruni

0

Nếu bạn đang trên Linux bạn chỉ có thể tạo ra một liên kết tượng trưng từ tập tin so.SqueakSSL trên thư mục ảo để một tên SqueakSSL

ví dụ

ln -s so.SqueakSSL SqueakSSL

và VM sẽ tìm thấy.

3

Một vài ngày trước, tôi đã có một vấn đề tương tự trong ScientificLinux, rất giống với CentOS. Vấn đề là các thư viện được yêu cầu libssl.so.0.9.8 và libcrypto.so.0.9.8 nhưng tồn tại dưới dạng libssl.so.0.9.8e và 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 

Giải pháp là để tạo ra hai liên kết tượng trưng:

# 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) 
Các vấn đề liên quan