- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- Inviare un pdf generato con iTextShapr ad una mail inserita
-
Inviare un pdf generato con iTextShapr ad una mail inserita
Salve, come da titolo, ho generato un file PDF con iTextSharp e vorrei inviarlo ad una mail inserita all'interno di una textbox.
Dovrebbe essere tutto corretto quando provo a cliccare sul pulsante INVIA mi da il seguente errore su SmtpServer.Send(mail):Il server SMTP richiede una connessione protetta oppure il client non è stato autenticato. Risposta del server: 5.5.1 Authentication Required.
Ecco il codice:
var document = new Document(PageSize.A4, 25, 25, 25, 25); var output = new MemoryStream(); var writer = PdfWriter.GetInstance(document, output); document.Open(); var titleFont = FontFactory.GetFont("Arial", 20, Font.BOLD); var subTitleFont = FontFactory.GetFont("Arial", 14, Font.BOLD); var boldTableFont = FontFactory.GetFont("Arial", 12, Font.BOLD); var endingMessageFont = FontFactory.GetFont("Arial", 10, Font.ITALIC); var bodyFont = FontFactory.GetFont("Arial", 12, Font.NORMAL); document.Add(new Paragraph("", titleFont)); document.Add(new Paragraph("", bodyFont)); document.Add(Chunk.NEWLINE); document.Add(new Paragraph(titolo, subTitleFont) document.Add(Chunk.NEWLINE); document.Add(Chunk.NEWLINE); document.Close(); Response.ContentType = "application/pdf"; Response.BinaryWrite(output.GetBuffer()); string gMail = "xxx"; string gPsw = "xxx"; MailMessage mail = new MailMessage(); mail.From = new MailAddress(gMail); mail.To.Add(new MailAddress(TxtMail.Text)); mail.Attachments.Add(new Attachment(output, "File.pdf")); System.Net.NetworkCredential login = new System.Net.NetworkCredential(gMail, gPsw); SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com", 587); SmtpServer.EnableSsl = true; SmtpServer.UseDefaultCredentials = false; SmtpServer.Credentials = login; SmtpServer.Send(mail);
Dove sbaglio?
-
prova a mettere UseDefaultCredentials a true
-
Grazie per la risposta ma non funziona comunque.
-
potrebbe esser legato ad un problema di sicurezza relativo a google.
Prova a guardare questo link
-
Purtroppo non ho trovato soluzione nella pagina che mi hai indicato, ho provato tutto ciò che hanno consigliato ma nulla.
E' possibile che io sbagli nell'inserire le credenziali? Che credenziali dovrei mettere?
-
dovresti inserire le credenziali dell'host che usi per spedire la mail
-
Ciao Trese, lo UserName, variabile gMail, la metti completa di '@gmail.com' o senza?
-
Con, comunque ho tra virgolette risolto. Il codice funziona correttamente, ora lo posto, ma non riesce ad inviare l'e-mail per questioni di impostazioni account gmail. L'errore è: Impossibile inviare l'e.mail. Suppongo dunque che sia un problema non relativo al codice ma alle impostazioni del server smtp sull'account.
var mailSender = "[email protected]"; var pswSender = "XXX"; var mailReceiver = TxtMail.Text; MailMessage mail = new MailMessage(mailSender, mailReceiver); mail.Attachments.Add(new Attachment(output, "file.pdf")); //output è una variabile di MemoryStrem SmtpClient client = new SmtpClient(); client.Host = "smtp.gmail.com"; client.EnableSsl = true; System.Net.NetworkCredential networkCred = new System.Net.NetworkCredential(); networkCred.UserName = mailSender; networkCred.Password = pswSender; client.UseDefaultCredentials = true; client.Credentials = networkCred; client.Port = 993; client.Send(mail);
-
Prova a guardare se sull'account gmail (da web) ci sono comunicazioni relative a tentativi di accesso sconosciuti...
Se riconosci l'ip da cui proviene l'applicazione che tenta di inviare allora devi confermare a google che sei tu...