le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Descrizione della funzione: utilizza la verifica e-mail per realizzare l'attivazione della registrazione dell'utente e il recupero della password. La casella di posta seleziona NetEase 163 come server SMTP.
Situazione di test reale: Tipo 1: La porta 25 della maggior parte degli operatori di server è bloccata per impostazione predefinita. Puoi contattare l'operatore per sbloccare la porta 25. Dopo lo sblocco, è possibile utilizzare la porta 25. Il secondo tipo: utilizza porte crittografate 465 e 587 Dopo il test, la porta 587 non è riuscita a inviare e ha restituito "Impossibile leggere i dati dalla connessione di trasmissione", quindi qui viene eseguita solo la configurazione della porta 465. Di seguito sono riportati i codici di due casi di successo. Scegliere in base alla situazione reale.
Dalle informazioni su Internet ho appreso che anche la porta 587 delle caselle di posta Alibaba e QQ non è riuscita a inviare, quindi è attualmente noto che la porta 587 del servizio stmp dei tre principali operatori NetEase, Alibaba e QQ ha fallito.
Passo uno: avvia il servizio SMTP. Accedi alla casella di posta NetEase [Impostazioni] - trova [POP3/SMTP/IMAP] nel menu a sinistra, abilita il servizio e ottieni la password di autorizzazione (nota: utilizza la password di autorizzazione per la password nel codice).Impostare come mostrato nell'immagine
Passaggio 2: configura le regole dello stack del firewall del server e aggiungi la porta 465.
Passaggio 3: codice.
Send25 è un metodo per testare la capacità di inviare e-mail sulla porta 25. La libreria di classi utilizzava System.Net.Mail
pubblico vuoto Send25()
{
//this.SmtpHost //Specificare l'indirizzo del server SMTP
//this.SmtpPort //porta del server SMTP
//this.FromEmailAddress //L'indirizzo email per l'invio di email
//this.FormEmailPassword //Password email per l'invio di email, qui viene utilizzato il codice di autorizzazione
//this.ToList //L'indirizzo email per ricevere email, che può essere una raccolta separata da virgole
//System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;//Ripristina l'ordine
SmtpClient smtp = new SmtpClient(); //Crea un'istanza di SmtpClient
smtp.DeliveryMethod = SmtpDeliveryMethod.Network //Imposta la modalità in uscita di smtp su Rete;
smtp.EnableSsl = false; //Se il server SMTP abilita la crittografia SSL
smtp.Host = this.SmtpHost; //Specificare l'indirizzo del server smtp
smtp.Port = this.SmtpPort; //Specificare la porta del server smtp. Il valore predefinito è 25. Se viene utilizzata la porta predefinita, può essere omessa.
smtp.UseDefaultCredentials = true; //Se il tuo server SMTP non richiede l'autenticazione dell'identità, utilizza il seguente metodo. Tuttavia, attualmente non è praticamente necessaria l'autenticazione.
//smtp.EnableSsl = false;
smtp.Credentials = new NetworkCredential(this.FromEmailAddress, this.FormEmailPassword) //Se è richiesta l'autenticazione, utilizzare il metodo seguente
MailMessage mm = new MailMessage(); //Istanzia una classe di posta
mm.Priority = MailPriority.Normal; //La priorità dell'e-mail è divisa in Bassa, Normale e Alta. Di solito è possibile utilizzare Normale.
mm.From = new MailAddress(this.FromEmailAddress, "Amministratore", Encoding.GetEncoding(936));
//destinatario
se (!string.IsNullOrEmpty(this.ToList))
mm.Aggiungi(questo.AllaLista);
//Cc persona
se (!string.IsNullOrEmpty(this.CCList))
mm.CC.Add(this.CCList);
//CC
se (!string.IsNullOrEmpty(this.BccList))
mm.Bcc.Aggiungi(this.BccList);
mm.Oggetto = this.Oggetto; //Titolo email
mm.SubjectEncoding = Encoding.GetEncoding(936); //Questo è molto importante Se il titolo della tua email contiene cinese, deve essere specificato qui, altrimenti l'altra parte molto probabilmente riceverà caratteri confusi.
mm.IsBodyHtml = this.IsBodyHtml; //Se il corpo dell'email è in formato HTML
mm.BodyEncoding = Encoding.GetEncoding(936); //La codifica del corpo dell'email è impostata in modo errato e il destinatario riceverà caratteri confusi.
mm.Body = this.Body; //Testo email
//Allegato di posta
se (this.AttachmentList != null && this.AttachmentList.Count > 0)
{
foreach (allegato allegato in this.AttachmentList)
{
mm.Allegati.Aggiungi(allegato);
}
}
Invia(mm);
}
Send465 è un metodo per testare la capacità di inviare e-mail sulla porta 465. La libreria di classi utilizzava System.Web.Mail
bool pubblico Send465()
{
// Oggetto dell'email
Il messaggio di posta elettronica viene inviato automaticamente al server System.Web.Mail.MailMessage.
//Oggetto dell'email
mmsg.Oggetto = "Oggetto";
mmsg.BodyFormat = System.Web.Mail.MailFormat.Html;
//Testo dell'e-mail
mmsg.Body = "Testo";
//Codifica del testo
mmsg.BodyEncoding = Codifica.UTF8;
//priorità
mmsg.Priority = System.Web.Mail.MailPriority.Normal;
//Indirizzo email del mittente
mmsg.Da = E-mail;
//Indirizzo della casella di posta del destinatario
mmsg.To = e-mail;
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
//nome utente
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", Email);
//Password (codice di autorizzazione)
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", Emailpwd);
//porta
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", Porta);
//Se ssl
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl",true);
//Server SMTP
System.Web.Mail.SmtpMail.SmtpServer = Host;
Tentativo
{
Sistema.Web.Mail.SmtpMail.Send(mmsg);
restituisci vero;
}
cattura (eccezione ex)
{
restituisci falso;
}
}