Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C#] Rappresentazione del tasto Invio

    In passato scrissi un programmino in VB6 in modo da permettere all'utente di inviare mail, in pratica, era come se inviassi la mail connettendomi tramite Telnet al server SMTP.

    All'epoca feci uso del metodo Winsock e dopo ogni stringa di testo inviata al server di posta (ad esempio: "helo nome_server") inviavo "vbCrLf" in modo da segnalare al server di andare a capo come se avessi premuto invio durante una sessione Telnet.

    Ora, quale è il corrispettivo in C# di "vbCrLf" in VB6?

    Grazie.

  2. #2
    Usa la sequenza di escape "\n\r".
    codice:
    nomestream.Write("Ciao\n\r");
    oppure, anche più semplice:
    codice:
    nomestream.WriteLine("Ciao");
    .
    Le sequenze di escape valgono in qualunque stringa tranne che nelle cosiddette "stringhe C#" (precedute da un carattere @); il metodo WriteLine è valido sulla maggior parte degli stream, per cui lo puoi usare anche sullo stream di rete che userai per parlare col server SMTP.
    P.S.: in .NET per l'invio delle mail ci sono già le classi del namespace System.Web.Mail, che implementano la funzionalità su cui stai lavorando in modo estremamente semplice.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Grazie! Proverò ciò che mi hai consigliato, comunque, ho già fatto uso delle classi del Framework .NET relative alle mail.

    Volevo provare qualcosa si nuovo.



    EDIT:

    Ho provato ma l'esperimento non è andato a buon fine . . . una cosa, i caratteri "\n\r" dovrebbero essere interpretati dal server SMTP come un Invio?

  4. #4
    Sì, sono l'equivalente di vbCrLf; \n è vbCr (carriage return, ASCII 0x0A), \n è vbLf (line feed, ASCII 0x0D).
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Sto sbagliando qualcosa . . .

    Allora, per connettermi al server SMTP utilizzo la classe TCPClient e il metodo Connect, naturalmente sulla porta 25.

    Una volta connesso invio le stringhe che invierei all'interno di una sessione Telnet con questa sintassi (probabilmente è questo l'errore):

    codice:
    byte[] data = System.Text.Encoding.ASCII.GetBytes("HELO nome_server\n\r");
    NetworkStream stream = client.GetStream();
    stream.Write(data, 0, data.Length);
    Sto sbagliando qualcosa nella sintassi di invio dei dati al server SMTP?

    Grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.