Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Ciaffo Zone - Invio email
Forum - Ciaffo Zone - Invio email

Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ] Precedente | Prossimo
Avatar
quasar87 (Normal User)
Pro


Messaggi: 65
Iscritto: 03/05/2022

Segnala al moderatore
Postato alle 15:58
Venerdì, 06/05/2022
Ho un codice che esegue semplici calcoli, vorrei che il risultato di questi calcoli fosse inviato a degli indirizzi email e avrei bisogno che le email avessero degli allegati, ho visto questo codice, ma è un po' datato, pensate funzionerebbe come sintassi anche ora?
https://www.pierotofy.it/pages/guide_tutorials/Csharp/Invia ...
O ci sono modi migliori di inviare email con allegato?
Ho fatto qualche ricerca e visto diversi esempi ma non ho capito bene come integrare il mio codice con quello per l'invio delle email, e soprattutto come passare i risultati dei calcoli fatti dal mio programmino alle email da inviare.
Quealcuno può aiutarmi?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:07
Venerdì, 06/05/2022
Hai visto e provato dei codici che mandano mail? Ce ne sono a tonnellate. Poi cambia quello che mandano con le tue variabili in cui metti i risultati di questi tuoi calcoli.

Ma che difficoltà hai??

Ultima modifica effettuata da nessuno il 06/05/2022 alle 19:08


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
quasar87 (Normal User)
Pro


Messaggi: 65
Iscritto: 03/05/2022

Segnala al moderatore
Postato alle 19:37
Venerdì, 06/05/2022
Si volevo applicare il concetto che tu dici, però il porblema è che il debugger mi segnala degli errori che attualmente ho difficoltà a correggere e poi come tu dici, ci sono tanti codici e non so quale sia il più indicato, alcuni sono obsoleti forse in quanto pubblicati in pagine di siti web anni fa, e poi da quel che ho visto tutti questi codici permettono di inviare email ma non mi sembra di vedere nulla che permetta di portare i valori di un calcolo come nel mio caso nel body dell'email, io vorrei che i risultati del calcolo fossero inseriti nel body della email che sarebbe una email predefinita dove deve essere inserito solo il valore del calcolo, il resto lo scriverei direttamente io, un template di email predefinito insomma dove inserire solo il risultato del calcolo che esegue il programma. Questa è la situazione.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 22:02
Venerdì, 06/05/2022
Il valore va nel body come un qualsiasi testo. Perché tutti questi dubbi?

Usa un codice tra i più recenti, posta il codice e imposta le tue variazioni. Dopo che l'hai provato, mettilo sul forum e spiega cosa non va.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
quasar87 (Normal User)
Pro


Messaggi: 65
Iscritto: 03/05/2022

Segnala al moderatore
Postato alle 12:22
Sabato, 07/05/2022
Il codice è questo:
Codice sorgente - presumibilmente Delphi

  1. public static void CreateMessageWithAttachment(string server)
  2. {
  3.     // Specify the file to be attached and sent.
  4.     // This example assumes that a file named Data.xls exists in the
  5.     // current working directory.
  6.     string file = "data.xls";
  7.     // Create a message and set up the recipients.
  8.     MailMessage message = new MailMessage(
  9.         "jane@contoso.com",
  10.         "ben@contoso.com",
  11.         "Quarterly data report.",
  12.         "See the attached spreadsheet.");
  13.  
  14.     // Create  the file attachment for this email message.
  15.     Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
  16.     // Add time stamp information for the file.
  17.     ContentDisposition disposition = data.ContentDisposition;
  18.     disposition.CreationDate = System.IO.File.GetCreationTime(file);
  19.     disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
  20.     disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
  21.     // Add the file attachment to this email message.
  22.     message.Attachments.Add(data);
  23.  
  24.     //Send the message.
  25.     SmtpClient client = new SmtpClient(server);
  26.     // Add credentials if the SMTP server requires them.
  27.     client.Credentials = CredentialCache.DefaultNetworkCredentials;
  28.  
  29.     try
  30.     {
  31.         client.Send(message);
  32.     }
  33.     catch (Exception ex)
  34.     {
  35.         Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}",
  36.             ex.ToString());
  37.     }
  38.     // Display the values in the ContentDisposition for the attachment.
  39.     ContentDisposition cd = data.ContentDisposition;
  40.     Console.WriteLine("Content disposition");
  41.     Console.WriteLine(cd.ToString());
  42.     Console.WriteLine("File {0}", cd.FileName);
  43.     Console.WriteLine("Size {0}", cd.Size);
  44.     Console.WriteLine("Creation {0}", cd.CreationDate);
  45.     Console.WriteLine("Modification {0}", cd.ModificationDate);
  46.     Console.WriteLine("Read {0}", cd.ReadDate);
  47.     Console.WriteLine("Inline {0}", cd.Inline);
  48.     Console.WriteLine("Parameters: {0}", cd.Parameters.Count);
  49.     foreach (DictionaryEntry d in cd.Parameters)
  50.     {
  51.         Console.WriteLine("{0} = {1}", d.Key, d.Value);
  52.     }
  53.     data.Dispose();
  54. }




Il debug segnala alcuni problemi, ad esempio:

Il modificatore 'public' non è valido per questo elemento
<Main>$ chiama TryParse ma non verifica in modo esplicito se la conversione è riuscita. Usare il valore restituito in un'istruzione condizionale o verificare che il sito di chiamata preveda l'impostazione dell'argomento out sul valore predefinito in caso di conversione non riuscita.    


PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 20:28
Sabato, 07/05/2022
Si ma...
Le credenziali del server smtp?
User, ip, pass le hai messe?

Credo proprio che ti mancano le basi.
Prima di partire, fare copia e incolla,
Prova a scriverlo tu linea per linea.
Anche se lo devi fare a
ricopiare.
Ma almeno così impari a programmare leggendo i suggerimenti dell'intellisense e capire cosa fa un singolo comando.

Sconsiglio sempre il copia/incolla non si impara praticamente nulla in questo modo.

Se gli esempi  qui o su Google sono vecchi, usa il nuget di visual studio. E ti scarichi librerie ad hoc pronte per fare quello che cerchi.

Ovviamente devi sempre leggere come funziona quella libreria.

Non credo che compri un'auto nuova esempio, e non leggi il manuale utente.
E praticamente la stessa cosa.

Prima di usare qualsiasi libreria o codice devi almeno capire come funziona prima di usarlo.



https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
quasar87 (Normal User)
Pro


Messaggi: 65
Iscritto: 03/05/2022

Segnala al moderatore
Postato alle 21:44
Sabato, 07/05/2022
No le credenziali ancora non le ho messe, ma sinceramente pensavo che il problemi non fossero dovuti al mancato inserimento delle credenziali ma piuttosto a non avere integrato bene il codice con il resto, tipo non avere indicato un namespace o qualcosa del genere.
Come user e password vanno messe quelle dell'account dal quale voglio che vengano inviate le email? mentre come ip?

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2305
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:05
Domenica, 08/05/2022
L'impegno ce lo metti, ma non la logica.
Hai mai inviato una mail senza eseguire l'accesso esempio google o microsoft?

Non guardare le mail temporanee, hanno gia il loro script interno che si appoggia ad un server smtp privato.

Codice sorgente - presumibilmente C++

  1. try
  2. {
  3.     MailMessage mail = new MailMessage();
  4.     SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
  5.     mail.From = new MailAddress("tuao email@gmail.com");
  6.     mail.To.Add("destinatario@gmail.com");
  7.     mail.Subject = "Test Mail - 1";
  8.     mail.Body = "mail";
  9.  
  10.     Attachment attachment = new Attachment(attachment, MediaTypeNames.Application.Octet);
  11.     ContentDisposition disposition = attachment.ContentDisposition;
  12.     disposition.CreationDate = File.GetCreationTime(attachment);
  13.     disposition.ModificationDate = File.GetLastWriteTime(attachment);
  14.     disposition.ReadDate = File.GetLastAccessTime(attachment);
  15.     disposition.FileName = Path.GetFileName(attachment);
  16.     disposition.Size = new FileInfo(attachment).Length;
  17.     disposition.DispositionType = DispositionTypeNames.Attachment;
  18.     mail.Attachments.Add(attachment);  
  19.  
  20.  
  21.     SmtpServer.Port = 587;
  22.     SmtpServer.Credentials = new System.Net.NetworkCredential("tua_email@gmail.com", "tua_password");
  23.     SmtpServer.EnableSsl = true;
  24.  
  25.    SmtpServer.Send(mail);
  26.  
  27. } Catch(Exception a)
  28. {
  29.  
  30.  MessageBox.Show($"Si è verificato un errore {a.Message}");
  31.  
  32. }



Scrivolo così e prova.

Scrivilo a modo tuo, non fare copia e incolla.

Ultima modifica effettuata da Thejuster il 08/05/2022 alle 9:11


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
quasar87 (Normal User)
Pro


Messaggi: 65
Iscritto: 03/05/2022

Segnala al moderatore
Postato alle 11:41
Domenica, 08/05/2022
Direi proprio che ancora non sono in grado di scriverlo da zero :( però leggendolo riesco a decifrarlo abbastanza bene.
Mi dicevi di inserire l'ip ma nel codice che hai scritto non c'è nessun ip, che mi sono perso? :asd:
Ho comunque provato a utilizzare il tuo codice, però vengono segnalati problemi simili a quello che utilizzavo in precedenza, ad esempio "è previsto un blocco catch o finally" oppure "Il nome di tipo o di spazio dei nomi 'MailMessage' non è stato trovato. Probabilmente manca una direttiva using o un riferimento all'assembly".
Per questo mi veniva da pensare al fatto di non avere integrato bene il codice con il restante, il debugger dice che manca un "using" ma non capisco dopo la direttiva using cosa mettere affinche 'MailMessage' venga trovato, e poi dove porre il "using" se all'inizio di tutto il codice o solo del blocco di interesse, ho un po' di confusione perchè ad esempio le variabili possono essere viste globalmente o solo nel blocco di codice in cui vengono dichiarate, ecco, "using" funziona ugualmente?
Scusami i particolari, ma anche se per te sono cose banali, per me no ancora purtroppo 8-|

Ultima modifica effettuata da quasar87 il 08/05/2022 alle 11:42
PM Quote
Pagine: [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ] Precedente | Prossimo