2009-03-12 18 views
14

Ho un'applicazione .Net. Voglio che questa applicazione mi invii un'email. Come posso implementarlo senza installare un server SMTP?Invio di posta senza installare un server SMTP

+0

Se è necessario codice di esempio, ecco alcuni che mostra come inviare un messaggio di posta elettronica utilizzando il servizio SMTP di Gmail. http://gatekiller.co.uk/Post/Send_Emails_with_.NET_and_Gmail – GateKiller

+0

@GateKiller: Grazie per il link, lo apprezzo – Germstorm

risposta

15

Utilizzando un SmtpClient per inviare un MailMessage non richiede di avere un server sul computer locale.

Il tuo fornitore di servizi di posta elettronica è quello con il server (ad esempio smtp.gmail.com) e il tuo SmtpClient parla ad esso.

3

Non è possibile inviare e-mail senza i servizi di un server SMTP, non è ovviamente necessario installarne uno, basta puntare il codice sul server SMTP dell'ISP o sul server Exchange delle aziende (o qualsiasi altra cosa utilizzino).

+0

Questa risposta è fuorviante. È possibile consegnare una e-mail a un destinatario senza avere il proprio server di posta. Connessione al server identificata dal record MX sul dominio dei destinatari e comunicazione diretta. – Brendan

+0

@Brendan: Penso che forse mi hai frainteso. Ho detto "senza i servizi di __a__ server SMTP". Dici "comunicando direttamente" cioè con il server su cui si risolve il record MX per il dominio. Quel server è __a__ server SMTP. Come si comunica direttamente con un server SMTP di destinazione? Se provi a farlo come cliente, è probabile che si arrabbi (o almeno dovrebbe farlo) dal momento che non sei uno dei suoi clienti. Potresti parlarci come se fossi un collega server SMTP ma questo è un sacco di lavoro. – AnthonyWJones

+2

E la maggior parte dei posti sane impedisce questo, bloccando la porta in uscita 25, come misura di filtraggio dello spam. – tripleee

9

Questo articolo di Peter Bromberg su eggheadcafe.com

C# SMTP Mail without SMTP Service or CDO

spiega come inviare e-mail senza fare affidamento su un client SMTP:

L'invio di e-mail via TCP utilizzando il nativo RFC SMTP i comandi "HELO", "MAIL From", RCPT TO ", ecc. non sono un grosso problema. Questo è uno dei primi trucchi che apprendiamo con Telnet. d codice che lo farà in modo affidabile è un'altra storia. Il codice nella classe che segue non è il mio codice originale - ho acciottolata insieme da tre diverse fonti di esempio, fissando spazi dei nomi, la gestione degli errori, e altre voci minori , cambiando il codice console per codice libreria di classi, e fornendo un front-end per il cablaggio di test basato su Winform completo che illustra l'utilizzo corretto di .

Ho anche incluso il codice di esempio per elaborare correttamente e aggiungere un allegato di posta elettronica tramite OpenFileDialog qui. Questo codice MIME codifica e trasmette gli allegati in base alla specifica .

+2

Questo si basa ancora sull'essere un server SMTP all'altro capo; Non sono sicuro di quale vantaggio non stai utilizzando SmtpClient e MailMessage ... –

+2

Ehm, ci deve sempre essere un server SMTP sull'altro lato. Questo esempio mostra l'invio di posta utilizzando il protocollo SMTP esplicitamente nel codice. – splattne

+0

@splattne: Ok ... Suppongo che potrebbe essere interessante/divertente implementare il protocollo da solo;] –