SMTP - błąd

0

http://pastebin.com/BpYzJt42

Mam taki oto kod, jednakże przy wysyłaniu wiadomości program zaczyna dość długo 'myśleć' i wyskakuje mi taki błąd: "java.net.ConnectException: Connection timed out: connect". Dane są poprawne na 100%.

Co poprawić?

0

Szukałam wiele razy. Większość wyników dotyczy biblioteki JavaMail, której nie mogę używać. x;

0

A jakieś biblioteki są dopuszczalne? Mam program pocztowy korzystający z org.apache.commons.mail.

0

Pytanie za 100 punktów - czy serwer pocztowy, z którym próbujesz się połączyć akcepktuje niezabezpieczone połączenia? Większość obecnych dostawców poczty wymaga co najmniej SSL. Musisz wtedy korzystać z eSMTP i tworzyć połącznie po SSL:

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
socket = (SSLSocket) sslsocketfactory.createSocket(smtpAddress, smtpPort);

W eSMTP masz EHLO zamiast HELO a reszta bardzo podobnie.
Doczytaj dokładnie specyfikację SMTP, ba masz jeszcze kilka błędów w tym kodzie np: Każda linia musi się kończyć znakami \r\n - jak twój kod odpalisz pod linuksem to println z PrintWritera doda tylko \n - lepiej będzie użyć metody print() a znak końca linii dodawać ręcznie. Druga sprawa to format samego maila czyli to co dodajesz po DATA : wrzucasz tam pewnie treść maila a nie dodajesz nagłówka - specyfikcja internet Message Format również będzie pomocna - samo SMTP nie powoduje dodania nagłówka do wiadmości (zawierającego dane nadawcy, odbiorcy etc), musisz go więc wysłać przed wysłaniem treści wiadaomości a od treści oddzielić pustą linią. W treści trzeba zadbać o to, żeby żadna linia nie zaczynała się od kropki bo zostanie to potraktowane jako koniec maila. No i żadna linia nie powinna być dłuższa niż 78 znaków.

Trochę tych wymagań tam jest. Jakbyś miał z czymś problemy to daj znać, mam gdzieś napisanego takiego klienta nie używającego żadnych bibliotek (oprócz tych używanych do kodowań base64, quoted-printable, etc) z obslugą SMTP i IMAP.

0

bogdans - raczej powinnam używać tylko strumieni, bo z biblioteką byłoby to zbyt proste... Jednak chętnie zobaczyłabym Twój program. ;)
dymul - było to nieszczęsne wp. :P Ale myślę, że jeśli chodzi o ten serwer, to powinno ogólnie pójść, bo pop3 normalnie działało, więc to tylko wyłącznie wina błędów w kodzie. W porządku, spróbuję to poprawić i w razie czego się odezwę.

0

Poprawiłam... I dalej ten sam błąd.

http://pastebin.com/UraGhvtd

0
 
  PW.print(s.replaceAll("\n", "\r\n"));
        PW.print("\r\n");

Jeżeli s to "czesc\r\n" to zamieniasz to na "czesc\r\r\n"
i dodajesz nowe "\r\n" na koniec ?

0

Tzn dodajesz już po wysłaniu chyba powinno być PW.print(s + "\r\n");

0

W tym problem, że to jest z książki (Java 2. Techniki Zaawansowane)... XD Więc, raczej powinno być to poprawne.
Miły Adolf - dopisałam z ciekawości, tak jak Ty. Nic to nie dało. ;c Ogólnie ten przykład dotyczył SMTP bez autoryzacji, więc zapewne błąd tkwi w tym.


Dobra, znalazłam już błąd. Port musi być inny. xDDD

0

Wzorcowy zapis dzisiejszej sesji wysłania emaila z smtp.wp.pl

openssl s_client -connect smtp.wp.pl:465 -crlf

test@test ~
$ echo -ne "testusername" | base64
dGVzdHVzZXJuYW1l

test@test ~
$ echo -ne "testpassword"|base64
dGVzdHBhc3N3b3Jk

test@test ~
$ openssl s_client -connect smtp.wp.pl:465 -crlf
CONNECTED(00000003)
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = GeoTrust Inc., CN = RapidSSL SHA256 CA - G3
verify return:1
depth=0 CN = *.wp.pl
verify return:1
---
Certificate chain
 0 s:/CN=*.wp.pl
   i:/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA - G3
 1 s:/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA - G3
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIEHjCCAwagAwIBAgIDB8DAMA0GCSqGSIb3DQEBCwUAMEcxCzAJBgNVBAYTAlVT
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMSAwHgYDVQQDExdSYXBpZFNTTCBTSEEy
NTYgQ0EgLSBHMzAeFw0xNTEwMjAxNDAxMTFaFw0xNjExMjAyMzQ4NThaMBIxEDAO
BgNVBAMMByoud3AucGwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCY
8TAMiiogukGgWGdd2vnklLykBKwCxSRVsIOBG4Ki290nEcTJxG2Osp4IpTh7E/aa
OKDcuy8RlFGXE9dry5udRYlyDSEr7/4AM/TQOli9GvK8knzhYm35bvPem7IgGX6e
lQlUcZkphCZGyGHqeAd3DTruphkEHPLhtWQTGfXaskbacwaKFsJkXjuIEulaB+FC
oAtcrodgEJot4VmfO0gLkT5zZiYy5t5cLKrny1bdi3pFV/AWMJyfnDqzA0PgC15b
J5MPJJ28HHPJpgs9pwePhGTEmVdMMFvKv+TVeSpVGN9wuyFq8PE8GbNJ0Ml4j8dR
IwHht8kA469nQCTP+DAPAgMBAAGjggFGMIIBQjAfBgNVHSMEGDAWgBTDnPP800YI
NLvORn+gfFvz4gjLWTBXBggrBgEFBQcBAQRLMEkwHwYIKwYBBQUHMAGGE2h0dHA6
Ly9ndi5zeW1jZC5jb20wJgYIKwYBBQUHMAKGGmh0dHA6Ly9ndi5zeW1jYi5jb20v
Z3YuY3J0MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB
BQUHAwIwGQYDVR0RBBIwEIIHKi53cC5wbIIFd3AucGwwKwYDVR0fBCQwIjAgoB6g
HIYaaHR0cDovL2d2LnN5bWNiLmNvbS9ndi5jcmwwDAYDVR0TAQH/BAIwADBBBgNV
HSAEOjA4MDYGBmeBDAECATAsMCoGCCsGAQUFBwIBFh5odHRwczovL3d3dy5yYXBp
ZHNzbC5jb20vbGVnYWwwDQYJKoZIhvcNAQELBQADggEBADBFYy7ynvGKFaHIUTvT
7oweAmtQyZw25x7UBMwt2anINM29rk9TutGsLe7jPkv2yMwbLAnFQXkB7/gBJ1kj
TCNOWYZgDZ3u0itEWFt3VEkTn1SSJ4IvYr4Vl94JtnBEk34DJdQFjOKTPhVgz5J9
oajv6fErYX9nVOu9lo7PaH56k3uMfxipClJXhaJDvJhSGhcPwekstK/0CNobN7e1
1imE/I9/uvkBNBIuJDXQNMRejiH6tWT50royUdYNDL+hnKfwnVGpE9ZxioKgLx6z
aMaItCMgmBNEmQKiqOQNmv92PNUQnncFnh21DGJ4jJ1+ghM6Y96RQ4+8YpXU9RdB
c6s=
-----END CERTIFICATE-----
subject=/CN=*.wp.pl
issuer=/C=US/O=GeoTrust Inc./CN=RapidSSL SHA256 CA - G3
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 2785 bytes and written 442 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: E0C0EC5E90AE9CE16E0184C85FF4F9344E68E484AB05D3B599E1248F9711FCEF
    Session-ID-ctx:
    Master-Key: C45DF481BDEE0B2530DF138D9CBDDD1B6BE611BE5D14C2313364E26E399350DE2AF98DE1BF2B175EC0F262FC58B6D6B6
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:

    Start Time: 1463302819
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
220 smtp.wp.pl ESMTP
ehlo
250-smtp.wp.pl
250-PIPELINING
250-AUTH=LOGIN PLAIN
250-AUTH LOGIN PLAIN
250-SIZE
250-X-RCPTLIMIT 100
250 8BITMIME
auth login
334 VXNlcm5hbWU6
dGVzdHVzZXJuYW1l
334 UGFzc3dvcmQ6
dGVzdHBhc3N3b3Jk
235 go ahead
mail from: [email protected]
250 ok
rcpt to:[email protected]
250 ok
data
354 go ahead
.
554 Nie przyjmiemy Twojej wiadomosci poniewaz brakuje nadawcy / We can't accept your message - missing From: (#5.3.0)
data
503 MAIL first (#5.5.1)
mail from:a
555 syntax error (#5.5.4)
mail from:[email protected]
502 unimplemented (#5.5.1)
mail from: [email protected]
250 ok
data
503 RCPT first (#5.5.1)
rcpt to: [email protected]
250 ok
data
354 go ahead
From: [email protected]

.
250 ok 1463303127 qp 4046
quit
502 unimplemented (#5.5.1)
bye
502 unimplemented (#5.5.1)
exit
502 unimplemented (#5.5.1)
QUIT
DONE

1 użytkowników online, w tym zalogowanych: 0, gości: 1