AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   sending email via sockets (https://forums.alliedmods.net/showthread.php?t=24420)

Greenberet 02-22-2006 07:49

sending email via sockets
 
Hello,
I've tryed to send an email with the smtp protocol and sockets.
But it isn't working :(

Code:
sendMail( server[], port, to[], from[], subject[], text[] ) {     static buff[1024];     static socket;     static error;     static len;     socket = socket_open( server , port, SOCKET_TCP, error );     if( error )         return error;             len = format( buff, 1023, "HELO %s^r^n", server );     socket_send( socket, buff, len );         len = format( buff, 1023, "MAIL FROM <%s>^r^n", from );     socket_send( socket, buff, len );         len = format( buff, 1023, "RCPT TO <%s>^r^n", to );     socket_send( socket, buff, len );         len = format( buff, 1023, "DATA ^r^n" );     socket_send( socket, buff, len );         len = format( buff, 1023, "SUBJECT: %s^r^n%s^r^n.^r^n", subject, text );     socket_send( socket, buff, len );         socket_close(socket);         return 0; }

the function returns 0, but I don't receive an email.

I use this params:
server: my mailserver
port: 25
to: [email protected]
from: [email protected]
subject: 1337 Test
text: this is a test mail

I've tryed socket_send and socket_send2, but both natives aren't working

Regards
Greenberet

Xanimos 02-22-2006 08:14

try using len += instead of len =

The problem is its sending the length of buffer as just the length of the subject and text so the email doesnt get enought information to send.

KoST 02-22-2006 09:59

change this:
Code:

MAIL FROM
RCPT TO

into this:
Code:

MAIL FROM:
RCPT TO:

and you forgot to send a single '.' on a line to tell the mailserver that the mail data is complete. QUIT command is also missing..

Greenberet 02-22-2006 10:42

ty Kost
i changed it, but it is still not working :(
btw. the single dot wasn't missing i had it in the same string as "SUBJECT"^^
Code:
sendMail( server[], port, to[], from[], subject[], text[] ) {     static buff[1024];     static socket;     static error;     static len;         socket = socket_open( server , port, SOCKET_TCP, error );     if( error )         return error;             len = format( buff, 1023, "HELO %s^r^n", server );     socket_send( socket, buff, len );         len = format( buff, 1023, "MAIL FROM:<%s>^r^n", from );     socket_send( socket, buff, len );         len = format( buff, 1023, "RCPT TO:<%s>^r^n", to );     socket_send( socket, buff, len );         len = format( buff, 1023, "DATA^r^n" );     socket_send( socket, buff, len );         len = format( buff, 1023, "SUBJECT:%s^r^n%s^r^n", subject, text );     socket_send( socket, buff, len );         len = format( buff, 1023, ".^r^n" );     socket_send( socket, buff, len );         len = format( buff, 1023, "QUIT" );     socket_send( socket, buff, len );             socket_close(socket);         return 0; }

@suicide
ty for your help, but "len =" is correct^^

Regards
Greenberet

KoST 02-22-2006 11:29

1. your source seem fine, except ^r^n after QUIT missing..
2. i'm not sure if you can send all the commands once, or if you have to wait for the response from the mail server. i would try to get the responses from the mail server, this would help you to know why this isn't working..

Xanimos 02-22-2006 12:07

Oh, I read through it quick and only saw one socket_send().


All times are GMT -4. The time now is 20:24.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.