1- /* client-tls- smtp-overssl .c
1+ /* client-smtp-over-tls .c
22 *
33 * Copyright (C) 2006-2025 wolfSSL Inc.
44 *
3838#include <wolfssl/wolfcrypt/coding.h>
3939
4040/* smtp overssl commands */
41- const char * oversslCmd [19 ] = {
41+ const char * oversslCmd [17 ] = {
4242 "220" ,
4343 "EHLO mail.example.com\r\n" ,
4444 "250" ,
@@ -53,8 +53,6 @@ const char* oversslCmd[19] = {
5353 "DATA\r\n" ,
5454 "354" ,
5555 "Subject: " ,
56- "To: " ,
57- "From: " ,
5856 "250" ,
5957 "QUIT\r\n" ,
6058 "221"
@@ -75,7 +73,7 @@ int main(int argc, char** argv)
7573
7674 /* Check for proper calling convention */
7775 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 ]);
7977 return 0 ;
8078 }
8179
@@ -235,7 +233,6 @@ int main(int argc, char** argv)
235233 goto cleanup ;
236234 }
237235
238-
239236 /*Change the line end to CRLF */
240237 strcpy (buff + outLen - 1 , "\r\n" );
241238
@@ -426,48 +423,8 @@ int main(int argc, char** argv)
426423 goto cleanup ;
427424 }
428425
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-
469426 /* main message */
470- printf ("main message: " );
427+ printf ("main message: \n " );
471428 memset (buff , 0 , sizeof (buff ));
472429 if (fgets (buff , sizeof (buff ), stdin ) == NULL ) {
473430 fprintf (stderr , "ERROR: failed to get message.\n" );
@@ -502,7 +459,7 @@ int main(int argc, char** argv)
502459 goto cleanup ;
503460 }
504461 /* 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 ]))) {
506463 printf ("%s\n" , buff );
507464 } else {
508465 fprintf (stderr , "ERROR: incorrect command received\n" );
@@ -512,8 +469,8 @@ int main(int argc, char** argv)
512469
513470 /* Send "QUIT\r\n" to the server */
514471 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 ) {
517474 fprintf (stderr , "ERROR: failed to send command.\n" );
518475 fprintf (stderr , "%d bytes of %d bytes were sent" , ret , (int ) len );
519476 goto cleanup ;
@@ -526,7 +483,7 @@ int main(int argc, char** argv)
526483 goto cleanup ;
527484 }
528485 /* 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 ]))) {
530487 printf ("%s\n" , buff );
531488 } else {
532489 fprintf (stderr , "ERROR: incorrect command received\n" );
0 commit comments