Heim > Backend-Entwicklung > C++ > Warum bekomme ich einen Fehler, wenn ich `mailMessage.to` und` MailMessage.from` zugewiesen habe?

Warum bekomme ich einen Fehler, wenn ich `mailMessage.to` und` MailMessage.from` zugewiesen habe?

Barbara Streisand
Freigeben: 2025-01-25 19:06:10
Original
957 Leute haben es durchsucht

Why Do I Get an Error When Assigning to `MailMessage.To` and `MailMessage.From`?

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>
Nach dem Login kopieren

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:

zu übergeben
<code class="language-csharp">MailMessage mail = new MailMessage("[email protected]", "[email protected]");
// ... rest of the email sending code ...</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage