Rumah > pembangunan bahagian belakang > C++ > Mengapa Saya Mendapat Ralat Semasa Menugaskan kepada `MailMessage.To` dan `MailMessage.From`?

Mengapa Saya Mendapat Ralat Semasa Menugaskan kepada `MailMessage.To` dan `MailMessage.From`?

Barbara Streisand
Lepaskan: 2025-01-25 19:06:10
asal
957 orang telah melayarinya

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

Menyelesaikan masalah Sifat Baca Sahaja dalam MailMessage untuk Penghantaran E-mel SMTP

Isunya:

Menghantar e-mel melalui SMTP selalunya melibatkan penggunaan kelas MailMessage dan SmtpClient. Ralat biasa timbul apabila cuba memberikan nilai terus kepada sifat To dan From MailMessage. Sifat ini adalah baca sahaja, yang membawa kepada ralat tugasan.

Pendekatan yang Salah (dan mengapa ia gagal):

Coretan kod berikut menunjukkan pendekatan yang cacat:

<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>
Salin selepas log masuk

Ralat berlaku kerana MailMessage.To dan MailMessage.From tidak direka bentuk untuk tugasan langsung selepas penciptaan objek.

Penyelesaian:

Cara yang betul untuk menetapkan alamat penerima dan pengirim adalah dengan menghantarnya terus ke dalam MailMessage pembina:

<code class="language-csharp">MailMessage mail = new MailMessage("[email protected]", "[email protected]");
// ... rest of the email sending code ...</code>
Salin selepas log masuk

Pendekatan ini memulakan sifat To dan From dengan betul semasa penyerahan objek, mengelakkan ralat penetapan sifat baca sahaja. Kod lengkap yang diperbetulkan akan kelihatan seperti ini:

<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>
Salin selepas log masuk

Dengan menggunakan pembina untuk menetapkan sifat ini, kod akan dilaksanakan tanpa ralat. Ingat untuk menggantikan alamat e-mel pemegang tempat dengan alamat pengirim dan penerima sebenar anda.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat Semasa Menugaskan kepada `MailMessage.To` dan `MailMessage.From`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan