Fehlerbehebung bei schreibgeschützten Eigenschaften in MailMessage
für den SMTP-E-Mail-Versand
Das Problem:
Beim Versenden von E-Mails über SMTP werden häufig die Klassen MailMessage
und SmtpClient
verwendet. Ein häufiger Fehler tritt auf, wenn versucht wird, den Eigenschaften To
und From
von MailMessage
direkt Werte zuzuweisen. Diese Eigenschaften sind schreibgeschützt, was zu einem Zuweisungsfehler führt.
Der falsche Ansatz (und warum er scheitert):
Der folgende Codeausschnitt veranschaulicht den fehlerhaften Ansatz:
<code class="language-csharp">MailMessage mail = new MailMessage(); mail.To = "[email protected]"; // Error! To is read-only. mail.From = "[email protected]"; // Error! From is read-only. // ... rest of the email sending code ...</code>
Der Fehler tritt auf, weil MailMessage.To
und MailMessage.From
nicht für die direkte Zuweisung nach der Objekterstellung vorgesehen sind.
Die Lösung:
Der richtige Weg, die Empfänger- und Absenderadressen festzulegen, besteht darin, sie direkt an den MailMessage
Konstruktor:
<code class="language-csharp">MailMessage mail = new MailMessage("[email protected]", "[email protected]"); // ... rest of the email sending code ...</code>
Dieser Ansatz initialisiert die Eigenschaften To
und From
während der Objektinstanziierung korrekt und vermeidet so den Fehler bei der Zuweisung schreibgeschützter Eigenschaften. Der vollständig korrigierte Code würde so aussehen:
<code class="language-csharp">using System.Net.Mail; // ... other code ... MailMessage mail = new MailMessage("[email protected]", "[email protected]"); SmtpClient client = new SmtpClient(); client.Port = 25; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = false; client.Host = "smtp.gmail.com"; mail.Subject = "this is a test email."; mail.Body = "this is my test email body"; client.Send(mail);</code>
Durch die Verwendung des Konstruktors zum Festlegen dieser Eigenschaften wird der Code fehlerfrei ausgeführt. Denken Sie daran, die Platzhalter-E-Mail-Adressen durch Ihre tatsächlichen Absender- und Empfängeradressen zu ersetzen.
Das obige ist der detaillierte Inhalt vonWarum bekomme ich einen Fehler, wenn ich `mailMessage.to` und` MailMessage.from` zugewiesen habe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!