Teknologian jakaminen

.net C# Käytä NetEase 163 -postilaatikkoa smtp-palvelun rakentamiseen sähköpostien lähetystoiminnon toteuttamiseksi

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Toiminnon kuvaus: Käytä sähköpostivahvistusta käyttäjän rekisteröinnin aktivointiin ja salasanan hakemiseen. Postilaatikko valitsee NetEase 163:n SMTP-palvelimeksi.

Todellinen testitilanne: Tyyppi 1: Useimpien palvelinoperaattoreiden portti 25 on oletuksena estetty Voit ottaa yhteyttä operaattoriin portin 25 lukituksen poistamiseksi. Porttia 25 voidaan käyttää. Toinen tyyppi: Käytä 465- ja 587-salattuja portteja Testauksen jälkeen 587-portti epäonnistui ja palautti "Ei voi lukea tietoja lähetysyhteydestä", joten tässä tehdään vain 465-portin konfigurointi. Alla on kahden onnistuneen tapauksen koodit. Valitse todellisen tilanteen mukaan.

Internetin tiedoista sain tietää, että myös Alibaban ja QQ-postilaatikoiden 587-portti epäonnistui, joten tällä hetkellä tiedetään, että kolmen suurimman operaattorin NetEasen, Alibaban ja QQ:n stmp-palveluportti 587 epäonnistui.

Vaihe yksi: Käynnistä smtp-palvelu. Kirjaudu NetEase-postilaatikkoon [Settings] - etsi [POP3/SMTP/IMAP] vasemmasta valikosta, ota palvelu käyttöön ja hanki valtuutussalasana (huomaa: käytä valtuutussalasanaa koodissa salasanana).Aseta kuvan osoittamalla tavalla

Vaihe 2: Määritä palvelimen palomuuripinosäännöt ja lisää portti 465.

Vaihe 3: Koodi.

Send25 on menetelmä, jolla testataan kykyä lähettää sähköposteja portissa 25. Luokkakirjastossa käytetty System.Net.Mail

public void Lähetä25()
        {

//this.SmtpHost //Määritä smtp-palvelimen osoite

//this.SmtpPort //smtp-palvelimen portti

//this.FromEmailAddress //Sähköpostiosoite sähköpostien lähettämiseen

//this.FormEmailPassword //Sähköpostin salasana sähköpostien lähettämiseen, tässä käytetään valtuutuskoodia

//this.ToList //Sähköpostien vastaanottamisen sähköpostiosoite, joka voi olla pilkuilla erotettu kokoelma


//System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;//可以去掉
SmtpClient smtp = new SmtpClient( //Instantioi SmtpClient
smtp.DeliveryMethod = SmtpDeliveryMethod.Network //Aseta smtp:n lähtevä tila verkkoon
smtp.EnableSsl = false //Ottaako smtp-palvelin käyttöön SSL-salauksen
smtp.Host = this.SmtpHost //Määritä smtp-palvelimen osoite
smtp.Port = this.SmtpPort //Määritä smtp-palvelimen portti Oletusarvo on 25. Jos oletusporttia käytetään, se voidaan jättää pois.
smtp.UseDefaultCredentials = true //Jos SMTP-palvelimesi ei vaadi identiteetin todennusta, käytä seuraavaa menetelmää.
//smtp.EnableSsl = false;
smtp.Credentials = new NetworkCredential(this.FromEmailAddress, this.FormEmailPassword //Jos vaaditaan todennus, käytä seuraavaa menetelmää).

MailMessage mm = new MailMessage();
mm.Priority = MailPriority.Normal //Sähköpostin prioriteetti on jaettu Low, Normal ja High Normaaliin.
mm.From = uusi postiosoite(this.FromSähköpostiosoite, "Järjestelmänvalvoja", Encoding.GetEncoding(936));

//vastaanottaja
if (!string.IsNullOrEmpty(this.ToList))
mm.To.Add(this.ToList);
//Kopio henkilö
if (!string.IsNullOrEmpty(this.CCList))
mm.CC.Add(this.CCList);
//CC
if (!string.IsNullOrEmpty(this.BccList))
mm.Bcc.Add(this.BccList);

mm.Subject = this.Subject //Sähköpostin otsikko
mm.SubjectEncoding = Encoding.GetEncoding(936) //Tämä on erittäin tärkeää.
mm.IsBodyHtml = this.IsBodyHtml //Onko sähköpostin teksti HTML-muodossa
mm.BodyEncoding = Encoding.GetEncoding(936); //Sähköpostin rungon koodaus on asetettu väärin, ja vastaanottaja saa vääriä merkkejä.
mm.Body = this.Body //Sähköpostiteksti
//Sähköpostin liite
if (this.AttachmentList != null && this.AttachmentList.Count > 0)
            {
foreach (Liite liite tässä.AttachmentList)
                {
mm.Attachments.Add(attachment);
                }
            }
smtp.Lähetä(mm);

        }

Send465 on menetelmä, jolla testataan kykyä lähettää sähköposteja portissa 465. Luokkakirjastossa käytetty System.Web.Mail

julkinen bool Lähetä465()
        {
// Sähköpostin aihe
System.Web.Mail.MailMessage mmsg = uusi System.Web.Mail.MailMessage();
//Sähköpostin aihe
mmsg.Subject = "Aihe";
mmsg.BodyFormat = System.Web.Mail.MailFormat.Html;
//Sähköpostiteksti
mmsg.Body = "Teksti";

//Tekstin koodaus
mmsg.BodyEncoding = Koodaus.UTF8;
//prioriteetti
mmsg.Priority = System.Web.Mail.MailPriority.Normal;
//Lähettäjän sähköpostiosoite
mmsg.From = Sähköposti;
//Vastaanottajan postilaatikkoosoite
mmsg.To = sähköposti;

mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
//käyttäjänimi
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", Sähköposti);
//Salasana (valtuutuskoodi)
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", Emailpwd);
//portti
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", Portti);
//Onko ssl
mmsg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl",true);
//Smtp-palvelin
System.Web.Mail.SmtpMail.SmtpServer = Isäntä;
yrittää
            {
System.Web.Mail.SmtpMail.Send(mmsg);
palauttaa tosi;
            }
saalis (poikkeuspoikkeus)
            {
palauttaa väärä;
            }
        }