Sviluppare una NetLogic per l'invio di e-mail
Questa NetLogic invia e-mail a un indirizzo predefinito.
- Creare la NetLogic:
- InVista progetto, fare clic con il pulsante destro del mouse suNetLogice selezionare .
- Passare il puntatore del mouse sulla NetLogic, selezionare e immettereEmailSender
- Fare doppio clic sulla NetLogic.Viene aperto l'editor di codice esterno.
- Nell'editor di codice, effettuare le seguenti operazioni:
- Sostituire il codice esistente con il codice seguente:using System; using System.Net.Mail; using System.Net; using UAManagedCore; using FTOptix.NetLogic; public class EmailSender : BaseNetLogic { [ExportMethod] public void SendEmail(string replyToAddress, string mailSubject, string mailBody) { if (string.IsNullOrEmpty(replyToAddress) || mailSubject == null || mailBody == null) { Log.Error("EmailSender", "Invalid values for one or more parameters."); return; } var fromAddress = new MailAddress("mail@domain.com", "Name"); // Email Sender var toAddress = new MailAddress("mail@domain.com", "Name"); // Email Receiver // Password for SMTP server authentication if required const string fromPassword = "Insert your password here."; var smtpClient = new SmtpClient { // Fill the following lines with your SMTP server info Host = "smtp.domain.com", Port = 587, EnableSsl = true, // Set to true if the server requires SSL. DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(fromAddress.Address, fromPassword) }; var message = new MailMessage() { // Create the message. Subject = mailSubject, Body = mailBody }; // Specify the sender message.From = fromAddress; // Recipient emails // The MailMessage.To property is a collection of emails, so you can add different recipients using: // message.To.Add(new MailAddress(...)); message.To.Add(toAddress); // Add reply-to address message.ReplyToList.Add(replyToAddress); try { // Send email message smtpClient.Send(message); Log.Info("Message " + mailSubject + " sent successfully."); } catch (Exception ex) { // Insert here actions to be performed in case of an error when sending an email Log.Error("Error while sending message " + mailSubject + ", please try again. " + ex.Message); } } }MANCIA: Nell'esempio, l'e-mail immessa al runtime viene aggiunta alla proprietàReplyToList. Questa proprietà contiene un elenco di indirizzi che verranno aggiunti automaticamente come destinatari in caso di risposta. Il metodoSenddiSmtpClientè incapsulato in un costrutto try/catch per gestire le possibili eccezioni.
- Modificare il valore della variabilevar fromAddressin modo che rispecchi l'e-mail del mittente.
- Modificare il valore della variabilevar toAddressin modo che rispecchi l'e-mail del destinatario.MANCIA: Nell'esempio, l'e-mail viene inviata a un singolo destinatario, ma è possibile aggiungere altri destinatari utilizzando la proprietàTodella classeMailMessage. Vedere Proprietà MailMessage.To (System.Net.Mail) | Microsoft DocsAd esempio:mailMessage.To.Add(new MailAddress(...)
- Se necessario, fornire la password all'account e-mail modificandoconst string fromPassword = "Insert your password here.";IMPORTANTE: Se si utilizza un'autenticazione a due fattori per proteggere l'account e-mail, è necessario generare una password per l'applicazione.
- Se necessario, nel valore della variabilevar smtpClient, configurare i datiCredentials.
- Salvare il codice.
Fornire un feedback