1
- /* client-tls- smtp-overssl .c
1
+ /* client-smtp-over-tls .c
2
2
*
3
3
* Copyright (C) 2006-2025 wolfSSL Inc.
4
4
*
38
38
#include <wolfssl/wolfcrypt/coding.h>
39
39
40
40
/* smtp overssl commands */
41
- const char * oversslCmd [19 ] = {
41
+ const char * oversslCmd [17 ] = {
42
42
"220" ,
43
43
"EHLO mail.example.com\r\n" ,
44
44
"250" ,
@@ -53,8 +53,6 @@ const char* oversslCmd[19] = {
53
53
"DATA\r\n" ,
54
54
"354" ,
55
55
"Subject: " ,
56
- "To: " ,
57
- "From: " ,
58
56
"250" ,
59
57
"QUIT\r\n" ,
60
58
"221"
@@ -75,7 +73,7 @@ int main(int argc, char** argv)
75
73
76
74
/* Check for proper calling convention */
77
75
if (argc != 3 ) {
78
- printf ("usage: %s <SERVER_NAME> <CERT_FILE>\n" , argv [0 ]);
76
+ printf ("usage: %s <SERVER_NAME> <CERT_FILE PATH >\n" , argv [0 ]);
79
77
return 0 ;
80
78
}
81
79
@@ -235,7 +233,6 @@ int main(int argc, char** argv)
235
233
goto cleanup ;
236
234
}
237
235
238
-
239
236
/*Change the line end to CRLF */
240
237
strcpy (buff + outLen - 1 , "\r\n" );
241
238
@@ -426,48 +423,8 @@ int main(int argc, char** argv)
426
423
goto cleanup ;
427
424
}
428
425
429
- /* Receiver mail address */
430
- printf ("To: " );
431
- memset (buff , 0 , sizeof (buff ));
432
- strcpy (buff , oversslCmd [14 ]);
433
- if (fgets (buff + strlen (oversslCmd [14 ]), sizeof (buff ), stdin ) == NULL ) {
434
- fprintf (stderr , "ERROR: failed to get message for server\n" );
435
- ret = -1 ;
436
- goto cleanup ;
437
- }
438
-
439
- strcpy (buff + strlen (buff ), "\r\n" );
440
-
441
- /* Send the receiver mail address to the server */
442
- len = strnlen (buff , sizeof (buff ));
443
- if ((ret = wolfSSL_write (ssl , buff , len )) != len ) {
444
- fprintf (stderr , "ERROR: failed to send the receiver mail address.\n" );
445
- fprintf (stderr , "%d bytes of %d bytes were sent" , ret , (int ) len );
446
- goto cleanup ;
447
- }
448
-
449
- /* Sender mail address */
450
- printf ("From: " );
451
- memset (buff , 0 , sizeof (buff ));
452
- strcpy (buff , oversslCmd [15 ]);
453
- if (fgets (buff + strlen (oversslCmd [15 ]), sizeof (buff ), stdin ) == NULL ) {
454
- fprintf (stderr , "ERROR: failed to get message for server\n" );
455
- ret = -1 ;
456
- goto cleanup ;
457
- }
458
-
459
- strcpy (buff + strlen (buff ), "\r\n" );
460
-
461
- /* Send the sender mail address to the server */
462
- len = strnlen (buff , sizeof (buff ));
463
- if ((ret = wolfSSL_write (ssl , buff , len )) != len ) {
464
- fprintf (stderr , "ERROR: failed to send the sender mail address.\n" );
465
- fprintf (stderr , "%d bytes of %d bytes were sent" , ret , (int ) len );
466
- goto cleanup ;
467
- }
468
-
469
426
/* main message */
470
- printf ("main message: " );
427
+ printf ("main message: \n " );
471
428
memset (buff , 0 , sizeof (buff ));
472
429
if (fgets (buff , sizeof (buff ), stdin ) == NULL ) {
473
430
fprintf (stderr , "ERROR: failed to get message.\n" );
@@ -502,7 +459,7 @@ int main(int argc, char** argv)
502
459
goto cleanup ;
503
460
}
504
461
/* Compare if the response is right code or not */
505
- if (!strncmp (buff , oversslCmd [16 ], strlen (oversslCmd [16 ]))) {
462
+ if (!strncmp (buff , oversslCmd [14 ], strlen (oversslCmd [14 ]))) {
506
463
printf ("%s\n" , buff );
507
464
} else {
508
465
fprintf (stderr , "ERROR: incorrect command received\n" );
@@ -512,8 +469,8 @@ int main(int argc, char** argv)
512
469
513
470
/* Send "QUIT\r\n" to the server */
514
471
memset (buff , 0 , sizeof (buff ));
515
- len = strlen (oversslCmd [17 ]);
516
- if ((ret = wolfSSL_write (ssl , oversslCmd [17 ], len )) != len ) {
472
+ len = strlen (oversslCmd [15 ]);
473
+ if ((ret = wolfSSL_write (ssl , oversslCmd [15 ], len )) != len ) {
517
474
fprintf (stderr , "ERROR: failed to send command.\n" );
518
475
fprintf (stderr , "%d bytes of %d bytes were sent" , ret , (int ) len );
519
476
goto cleanup ;
@@ -526,7 +483,7 @@ int main(int argc, char** argv)
526
483
goto cleanup ;
527
484
}
528
485
/* Compare if the response is right code or not */
529
- if (!strncmp (buff , oversslCmd [18 ], strlen (oversslCmd [18 ]))) {
486
+ if (!strncmp (buff , oversslCmd [16 ], strlen (oversslCmd [16 ]))) {
530
487
printf ("%s\n" , buff );
531
488
} else {
532
489
fprintf (stderr , "ERROR: incorrect command received\n" );
0 commit comments