Maison > développement back-end > C++ > Pourquoi est-ce que j'obtiens une erreur lors de l'attribution à « MailMessage.To » et « MailMessage.From » ?

Pourquoi est-ce que j'obtiens une erreur lors de l'attribution à « MailMessage.To » et « MailMessage.From » ?

Barbara Streisand
Libérer: 2025-01-25 19:06:10
original
957 Les gens l'ont consulté

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

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal