Dépannage des propriétés en lecture seule dans MailMessage
pour SMTP Email Envoi
Le problème:
Envoi des e-mails via SMTP implique souvent l'utilisation des classes MailMessage
et SmtpClient
. Une erreur commune survient lors de la tentative d'attribution directement des valeurs aux propriétés To
et From
de MailMessage
. Ces propriétés sont en lecture seule, conduisant à une erreur d'attribution.
L'approche incorrecte (et pourquoi elle échoue):
l'extrait de code suivant démontre l'approche défectueuse:
<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>
L'erreur se produit car MailMessage.To
et MailMessage.From
ne sont pas conçues pour l'attribution directe après la création d'objets.
La solution:
La bonne façon de définir les adresses du destinataire et de l'expéditeur est de les transmettre directement dans le constructeur MailMessage
:
<code class="language-csharp">MailMessage mail = new MailMessage("[email protected]", "[email protected]"); // ... rest of the email sending code ...</code>
Cette approche initialise correctement les propriétés To
et From
pendant l'instanciation de l'objet, en évitant l'erreur d'attribution de propriété en lecture seule. Le code corrigé complet ressemblerait à ceci:
<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>
En utilisant le constructeur pour définir ces propriétés, le code s'exécutera sans erreurs. N'oubliez pas de remplacer les adresses e-mail de l'espace réservé par vos adresses réelles de l'expéditeur et du destinataire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!