Die SmtpClient-Klasse
ermöglicht Anwendungen das Senden von E-Mails mithilfe des Simple Mail Transfer Protocol (SMTP).
Namespace: system.net.mail
Attribute
ClientCertificates: Gibt an, welches Zertifikat zum Herstellen einer Secure Sockets Layer (SSL)-Verbindung verwendet werden soll
Anmeldeinformationen: Ruft die Anmeldeinformationen ab, die zur Authentifizierung des Absenders verwendet werden, oder legt diese fest.
DeliveryFormat: Ruft das von SmtpClient zum Senden von E-Mails verwendete Zustellungsformat ab oder legt diese fest.
DeliveryMethod: Gibt an, wie E-Mails gesendet werden. Mail verarbeitet die Nachricht
EnableSsl: Gibt an, ob SmtpClient SSL-verschlüsselte Verbindungen (Secure Sockets Layer) verwendet
Host: Ruft die IP des Hosts ab, der zum Aufzeichnen einer oder mehrerer SMTP-Transaktionsadressen verwendet wird, oder legt diese fest
PickupDirectoryLocation: Ruft den Ordner ab, in dem die Anwendung E-Mails zur Verarbeitung durch den lokalen SMTP-Server speichert, oder legt diesen fest.
Port: Ruft den für SMTP-Transaktionen verwendeten Port ab oder legt diesen fest.
ServicePoint: Ruft die Netzwerkverbindung ab wird zum Übertragen von E-Mails verwendet
TargetName: Ruft den Dienstanbieternamen (SPN) ab oder legt diesen fest, wenn erweiterter Schutz für die Authentifizierung verwendet wird
Timeout: Ruft einen Wert ab oder legt diesen fest, der den Timeout für Sendeaufrufe angibt
UseDefaultCredentials: Ruft einen booleschen Wert ab oder legt diesen fest, der steuert, ob DefaultCredentials mit der Anfrage gesendet werden
Methode
Dispose()
Eine QUIT-Nachricht an das SMTP senden Server, beenden Sie die TCP-Verbindung normal und geben Sie alle von der aktuellen Instanz verwendeten Ressourcen der SmtpClient-Klasse frei
Dispose(Boolean)
Senden Sie eine QUIT-Nachricht, wenn sie an den SMTP-Server und das TCP gesendet wird Die Verbindung wird normal beendet, alle von der aktuellen Instanz verwendeten Ressourcen der SmtpClient-Klasse werden freigegeben und verwaltete Ressourcen können nach Bedarf freigegeben werden
Equals(Object)
Bestimmen Sie das angegebene Objekt Ob es so ist gleich dem aktuellen Objekt
Finalize()
Ermöglichen Sie einem Objekt, zu versuchen, Ressourcen freizugeben und andere Bereinigungsvorgänge durchzuführen, bevor der Garbage-Collection-Mechanismus es wiederverwendet
GetHashCode()
Als Standard-Hash-Funktion
GetType()
Den Typ der aktuellen Instanz abrufen
MemberwiseClone()
Erstellen Sie die aktuelle Objekt-Shallow-Kopie
OnSendCompleted(AsyncCompletedEventArgs)
Löst das SendComplete-Ereignis aus
Send(MailMessage)
Sendet die angegebene Nachricht zur Zustellung an den SMTP-Server
Send(String, String, String, String)
Sendet die angegebene E-Mail zur Zustellung an den SMTP-Server. SendAsync(MailMessage, Object)
verwendet das angegebene String-Objekt
, um die angegebene E-Mail zur Zustellung an den SMTP-Server zu senden. Diese Methode blockiert den aufrufenden Thread nicht und ermöglicht dem Aufrufer, das Objekt an die Methode zu übergeben, die aufgerufen wird, wenn der Vorgang abgeschlossen ist
SendAsync(String, String, String, String, Object)
sendet eine E-Mail. Die E-Mail wird zur Zustellung an den SMTP-Server gesendet. Der E-Mail-Absender, die Empfänger, der Betreff und der Nachrichtentext werden mithilfe von String-Objekten angegeben. Diese Methode blockiert den aufrufenden Thread nicht und ermöglicht dem Aufrufer, das Objekt an die Methode zu übergeben, die aufgerufen wird, wenn der Vorgang abgeschlossen ist.
SendAsyncCancel()
Bricht einen asynchronen Vorgang zum Senden einer E-Mail ab.
SendMailAsync(MailMessage)
Sendet die angegebene Nachricht für einen asynchronen Vorgang an den SMTP-Server Vorgang im Formular übermittelt.
SendMailAsync(String, String, String, String)
Sendet die angegebene Nachricht an den SMTP-Server zur Zustellung als asynchrone Operation. . Der E-Mail-Absender, die Empfänger, der Betreff und der Nachrichtentext werden mithilfe von String-Objekten angegeben.
ToString()
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Ereignis
SendCompleted
Tritt auf, wenn ein asynchroner E-Mail-Sendevorgang abgeschlossen wird
Bemerkungen
Tabelle unten Die in gezeigte Klasse wird zum Erstellen von E-Mails verwendet, die mit dem SmtpClient gesendet werden können.
Attachment-Klasse
stellt einen Dateianhang dar. Mit dieser Klasse können Sie eine Datei, einen Stream oder einen Text an eine E-Mail anhängen Stellt einen Absender dar. Personen- und Empfänger-E-Mail-Adresse
MailMessage-Klasse
Stellt eine E-Mail dar
Um eine E-Mail mit SmtpClient zu erstellen und zu senden, müssen Sie die folgenden Informationen angeben:
SMTP-Hostserver zum Versenden von E-Mails.
Zur Authentifizierung, wenn der SMTP-Server Anmeldeinformationen erfordert.
E-Mail-Adresse des Absenders.
E-Mail-Adresse oder Adresse des Empfängers.
Nachrichteninhalt.
Um einen Anhang in eine E-Mail aufzunehmen, erstellen Sie zunächst den Anhang mithilfe der Attachment-Klasse und fügen Sie ihn dann über die MailMessage.Attachments-Eigenschaft zur Nachricht hinzu. Abhängig vom verwendeten E-Mail-Reader und dem Dateityp des Anhangs können einige Empfänger den Anhang möglicherweise nicht lesen. Für Clients, die Anhänge nicht in ihrem Originalformat anzeigen können, können Sie eine alternative Ansicht angeben, indem Sie die MailMessage.AlternateViews-Eigenschaft angeben.
Sie können die Anwendungs- oder Computerkonfigurationsdatei verwenden, um Standardwerte für Host, Port und Anmeldeinformationen für alle SmtpClient-Objekte anzugeben.
Um E-Mails und Blöcke zu senden, während Sie auf die Übertragung der E-Mail an den SMTP-Server warten, verwenden Sie eine synchrone Sendemethode. Damit der Hauptthread des Programms während der E-Mail-Übertragung weiter ausgeführt werden kann, verwenden Sie eine der asynchronen SendAsync-Methoden. Das SendCompleted-Ereignis wird ausgelöst, wenn der SendAsync-Vorgang abgeschlossen ist. Um dieses Ereignis zu empfangen, müssen Sie SendCompleted einen SendCompletedEventHandler-Delegaten hinzufügen. Die Rückrufmethode, auf die der SendCompletedEventHandler-Delegat verweisen muss, um das SendCompleted-Ereignis der Benachrichtigung zu verarbeiten. Um die asynchrone E-Mail-Übertragung abzubrechen, verwenden Sie die SendAsyncCancel-Methode.
Der Hauptcode für die E-Mail-Sendeschnittstelle:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;using System.Windows.Forms; using System.IO;using System.Net;using System.Net.Mail; namespace SendEmail{ public partial class Form3 : Form{ string severaddress;string mailuser;string userpwd;public Form3(){ InitializeComponent(); } private void button1_Click(object sender, EventArgs e){ Form6 form = new Form6(); form.SendParaHandler +=new Form6.SendPara(reload); //事件的挂接form.Show(); } public void reload(){ StreamReader read = new StreamReader(@"fajianren.asdf"); severaddress = read.ReadLine(); mailuser = read.ReadLine(); userpwd = read.ReadLine(); read.Close();} private void Form3_Load(object sender, EventArgs e){ reload();} public bool sendmail(string mailfrom,string mailto,string mailsubject,string mailbody){ MailAddress from = new MailAddress(mailfrom); MailMessage message = new MailMessage(); try{message.From = from; message.To.Add(mailto); message.Subject = mailsubject; message.Body = mailbody; message.Priority = MailPriority.Normal; SmtpClient smtp = new SmtpClient(); smtp.Host = severaddress; smtp.UseDefaultCredentials = false; smtp.EnableSsl = true; smtp.Credentials = new NetworkCredential(mailuser,userpwd); smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.Send(message); } catch(Exception e){ return false; } return true; } private void button2_Click(object sender, EventArgs e){ string mailfrom = mailuser; string mailto = textBox1.Text; string mailsubject = textBox2.Text; string mailbody = textBox3.Text; if (sendmail(mailfrom, mailto, mailsubject, mailbody)){ MessageBox.Show("邮件发送成功"); } else{ MessageBox.Show("邮件发送失败"); } } } }
Der Hauptcode zum Festlegen der Absenderinformationsschnittstelle:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace SendEmail { public partial class Form 6 : Form {public Form6(){InitializeComponent(); } private void button1_Click(object sender, EventArgs e){ Write(); } //加载信息 private void Form6_Load(object sender, EventArgs e){ StreamReader read = new StreamReader(@"fajianren.asdf"); textBox1.Text = read.ReadLine(); textBox2.Text = read.ReadLine(); textBox3.Text = read.ReadLine(); read.Close(); } //写入信息 public void Write(){ StreamWriter write = new StreamWriter(@"fajianren.asdf"); write.WriteLine(textBox1.Text); write.WriteLine(textBox2.Text); write.WriteLine(textBox3.Text); write.Close(); } public delegate void SendPara(); //定义委托 public event SendPara SendParaHandler; //定义事件 private void button2_Click(object sender, EventArgs e){ SendParaHandler.Invoke(); Write(); this.Close(); } } }
Das Obige ist der Inhalt der SmtpClient-Klasse in C# und mehr Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!