# Envoi de mail basé sur un flux RSS

Script PowerShell qui permet d'envoyer un email avec le contenu d'un flux RSS. Le mail ne contient que le contenu publié depuis les deux derniers jours.

```
# Set the variables for the RSS feed URL, the email recipient, the sender address, and the SMTP credentials
$rssFeed = 'https://rss.com/feed'
$emailRecipient = 'user@example.com'
$emailSender = 'rssbot@example.com'
$smtpUsername = 'smtp-username'
$smtpPassword = 'smtp-password'

# Set the SMTP server and port
$smtpServer = 'smtp.example.com'
$smtpPort = 587

# Use the Invoke-WebRequest cmdlet to retrieve the RSS feed
$rss = Invoke-WebRequest -Uri $rssFeed

# Use the Select-Xml cmdlet to extract the item elements from the RSS feed
$items = Select-Xml -Xml ([xml]$rss.Content) -XPath "//item"

# Create a string variable to hold the email body
$emailBody = ''

# Loop through each item element in the RSS feed
foreach ($item in $items.Node) {
  # Extract the publication date of the item
  $pubDate = $item.SelectSingleNode('pubDate').InnerText

  # Convert the publication date to a DateTime object
  $pubDate = [datetime]$pubDate

  # Calculate the number of days between the publication date and the current date
  $daysSincePubDate = (Get-Date) - $pubDate

  # If the item was published in the last two days, add it to the email body
  if ($daysSincePubDate.Days -le 2) {
    $title = $item.SelectSingleNode('title').InnerText
    $description = $item.SelectSingleNode('description').InnerText

    $emailBody += "$title`n$description`n`n"
  }
}

# Use the Send-MailMessage cmdlet to send the email
Send-MailMessage -From $emailSender -To $emailRecipient -Body $emailBody -Subject 'RSS Feed' -SmtpServer $smtpServer -Port $smtpPort -Credential (New-Object System.Management.Automation.PSCredential -ArgumentList $smtpUsername, (ConvertTo-SecureString -String $smtpPassword -AsPlainText -Force))
```
