Bonjour,
Voici un article technique principalement dans le but de conserver ce code pour une réutilisation ultérieure.
Lors des développements des flux d’alimentation de ma mission, j’ai eu besoin d’envoyer des mails pour :
- Avertir de la disponibilité des fichiers
- Suivre l’état des flux
Je laisse donc ici le script en C# que j’ai utilisé dans une script task et le script VB qui m’a permis de faire le script C#.
using System.Net.Mail ;
using System.Net;
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
namespace ST_b88226a71961424cadf01e18c7537654.csproj
{
[System.AddIn.AddIn(« ScriptMain », Version = « 1.0 », Publisher = « », Description = « »)]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{
#region VSTA generated code
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};
#endregion
public void Main()
{
MailMessage myHtmlMessage;
SmtpClient mySmtpClient;
String body = « Corps du mail »;
String destinataire= « destinataire@mail.com »;
String expediteur = « expediteur@mail.com »;
String objet = »Objet »;
String smtp = « smtp.mail.fr »;
String mdp_smtp = « mdp smtp »;
String id_smtp = expediteur;
// Pour passer des variables provenant du flux
//body = (Dts.Variables.Add(« vMSG_Body »,true, »User », »3″)).ToString();
//adresseMail = (Dts.Variables.Add(« vMSG_Mail », true, « User », « 3 »)).ToString();
myHtmlMessage = new MailMessage(expediteur, destinataire, objet, body) ;
mySmtpClient = new SmtpClient(smtp, 25) ; //(ou 587)
mySmtpClient.EnableSsl = false ;
mySmtpClient.Credentials = new System.Net.NetworkCredential(id_smtp, mdp_smtp) ;
mySmtpClient.Send(myHtmlMessage) ;
Dts.TaskResult = (int)ScriptResults.Success;
}
}
}
En VB :
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Runtime
Imports System.Net.Mail
Imports System.Net
Public Class ScriptMain
Public Sub Main()
Dim myHtmlMessage As MailMessage
Dim mySmtpClient As SmtpClient
myHtmlMessage = New MailMessage(« expediteur@mail.fr », « destinataire@mail.fr », « objet », « Contenu du mail »)
mySmtpClient = New SmtpClient(« smtp.mail.fr », 25)
mySmtpClient.EnableSsl = False
mySmtpClient.Credentials = New System.Net.NetworkCredential(« identifiant smtp », « mdp smtp »)
mySmtpClient.Send(myHtmlMessage)
Dts.TaskResult = Dts.Results.Success
End Sub
End Class
Sources :
Comments