Office 365: How to send an e-mail from PowerShell through Office 365!

This time I’m sharing a new script that allows to send e-mail through Office 365 SMTP Service. You can download the script from the following URL: How to send an e-mail through Office 365 using PowerShell

############################################################################################################################################
# Script that allows to send an e-mail message using Office 365 SMTP Service
# Required Parameters:
#  ->$O365Cred: Office 365 Credentials Object
#  ->$sFromEMail: From E-Mail
#  ->$sToEMail: Recipients e-mails
#  ->$sCcEMail: CC E-Mails
#  ->$sBccEMail: Bcc E-Mails
#  ->$sEMailSubject: E-Mail Subject
#  ->$sEMailBody: E-Mail Body
#  ->$sSMTPServer: SMTP Server to be used (Office 365 in this case)
############################################################################################################################################

$host.Runspace.ThreadOptions = "ReuseThread"

#Definition of the function that allows to send an e-mail message using Office 365 SMTP Service
function Send-EmailByO365
{   
    param($O365Cred,$sFromEMail,$sToEMail,$sCcEMail,$sBccEMail,$sEMailSubject,$sEMailBody,$sSMTPServer) 
    Try
    {   
        
    if($sToEmail -ne $null -and $sCcEMail -ne $null)
    {
        [string[]]$To=$sToEMail.Split(',',[System.StringSplitOptions]::RemoveEmptyEntries)
        [string[]]$cc=$sCcEMail.Split(',',[System.StringSplitOptions]::RemoveEmptyEntries) 
        [string[]]$bcc=$sBccEmail.Split(',',[System.StringSplitOptions]::RemoveEmptyEntries) 
        Send-MailMessage -From $sFromEMail -To $To -Cc $cc -Bcc $sBccEMail -Subject $sEMailSubject -Body $sEMailBody -BodyAsHtml -SmtpServer $sSMTPServer -Credential $O365Cred -UseSsl 
        }    
    }
    catch [System.Exception]
    {
        Write-Host -ForegroundColor Red $_.Exception.ToString()   
    } 
}

#Office 365 Credentials
$sUserName="<Your_Office365_Admin_Account>"
$sMessage="Introduce your Office 365 Credentials"
$O365Cred=Get-Credential -UserName $sUserName -Message $sMessage

#E-Mail configuration
$sFromEMail="<From_Email>"
$sToEMail="<ToEMail_1>,<To_Email2>"
$sCcEMail="<CcEMail_1>,<Cc_Email2>"
$sBccEMail="<BccEMail_1>,<Bcc_Email2>"
$sEMailSubject="<E-Mail Subject>"
$sEMailBody="<E-Mail Body (just add your HTML code)>"
$sSMTPServer="smtp.office365.com"

#Sending the e-mail
Send-EmailByO365 -O365Cred $O365Cred -sFromEMail $sFromEMail -sToEMail $sToEMail -sCcEMail $sCcEMail -sBccEMail $sBccEMail -sEMailSubject $sEMailSubject -sEMailBody $sEMailBody -sSMTPServer $sSMTPServer

And this is the result you will get:

image

References:

Office 365: Como enviar un e-mail desde PowerShell a través de Office 365!

En esta ocasión os comparto un nuevo script que permite enviar correos electrónicos a través de Office 365 (haciendo uso del servicio de SMTP de Office 365). Podéis descargaros el script desde el siguiente enlace: How to send an e-mail through Office 365 using PowerShell

############################################################################################################################################
# Script that allows to send an e-mail message using Office 365 SMTP Service
# Required Parameters:
#  ->$O365Cred: Office 365 Credentials Object
#  ->$sFromEMail: From E-Mail
#  ->$sToEMail: Recipients e-mails
#  ->$sCcEMail: CC E-Mails
#  ->$sBccEMail: Bcc E-Mails
#  ->$sEMailSubject: E-Mail Subject
#  ->$sEMailBody: E-Mail Body
#  ->$sSMTPServer: SMTP Server to be used (Office 365 in this case)
############################################################################################################################################

$host.Runspace.ThreadOptions = "ReuseThread"

#Definition of the function that allows to send an e-mail message using Office 365 SMTP Service
function Send-EmailByO365
{   
    param($O365Cred,$sFromEMail,$sToEMail,$sCcEMail,$sBccEMail,$sEMailSubject,$sEMailBody,$sSMTPServer) 
    Try
    {   
        
    if($sToEmail -ne $null -and $sCcEMail -ne $null)
    {
        [string[]]$To=$sToEMail.Split(',',[System.StringSplitOptions]::RemoveEmptyEntries)
        [string[]]$cc=$sCcEMail.Split(',',[System.StringSplitOptions]::RemoveEmptyEntries) 
        [string[]]$bcc=$sBccEmail.Split(',',[System.StringSplitOptions]::RemoveEmptyEntries) 
        Send-MailMessage -From $sFromEMail -To $To -Cc $cc -Bcc $sBccEMail -Subject $sEMailSubject -Body $sEMailBody -BodyAsHtml -SmtpServer $sSMTPServer -Credential $O365Cred -UseSsl 
        }    
    }
    catch [System.Exception]
    {
        Write-Host -ForegroundColor Red $_.Exception.ToString()   
    } 
}

#Office 365 Credentials
$sUserName="<Your_Office365_Admin_Account>"
$sMessage="Introduce your Office 365 Credentials"
$O365Cred=Get-Credential -UserName $sUserName -Message $sMessage

#E-Mail configuration
$sFromEMail="<From_Email>"
$sToEMail="<ToEMail_1>,<To_Email2>"
$sCcEMail="<CcEMail_1>,<Cc_Email2>"
$sBccEMail="<BccEMail_1>,<Bcc_Email2>"
$sEMailSubject="<E-Mail Subject>"
$sEMailBody="<E-Mail Body (just add your HTML code)>"
$sSMTPServer="smtp.office365.com"

#Sending the e-mail
Send-EmailByO365 -O365Cred $O365Cred -sFromEMail $sFromEMail -sToEMail $sToEMail -sCcEMail $sCcEMail -sBccEMail $sBccEMail -sEMailSubject $sEMailSubject -sEMailBody $sEMailBody -sSMTPServer $sSMTPServer

Y este es el resultado que obtendréis al ejecutar el script:

image

Referencias:

Office 365: Mejoras en las Apps Teams para iOS, Android y Windows Mobile!

Tal y como podéis leer en el siguiente artículo publicado en la Microsoft TechCommunity, Microsoft ha agregado una serie de mejoras a las Apps de Teams para iOS, Android y Windows Mobile:

New collaboration features in Microsoft Teams mobile apps

Entre dichas novedades podemos destacar:

  • Unirse a reuniones planificadas en los equipos y canales en los que participamos con un simple gesto y participar con audio y video HD en los mismos.

Quickly look at upcoming meetings and join with one touch

  • Realizar llamadas de audio y video 1 a 1.

Connect face to face with immersive video gallery

  • Al participar en reuniones, visualizar contenido compartido, iniciar chats con los participantes y añadir nuevos participantes.

View shared content while in a meeting

Junto con estas mejoras a la hora de participar en las reuniones, se han añadido otras como:

  • Soporte de fichas (Tabs).
  • Posibilidad de visualizar y editar archivos Office.
  • Integración de Bots desde la App móvil.
  • Experiencia optimizada para el iPad.
  • Mejoras en las búsquedas.

With support for tabs, you can now access all of team's important documents

Office 365: Como obtener el ID de un Grupo de Office 365 (I)!

Para obtener el ID de un Grupo de Office 365 (independientemente de su tipo) tenemos distintas posibilidades. En este primer artículo vamos a a ver la opción de PowerShell a través de hacer uso del módulo de PowerShell para Winows Azure Active Directory. Para obtener el ID de un Grupo no tenéis más que ejecutar el siguiente script PowerShell:

$sUserName="jcgonzalez@nuberosnet.onmicrosoft.com"
$sMessage="Type your Office 365 Credentials"
$O365Cred=Get-Credential -UserName $sUserName -Message $sMessage
Connect-AzureAD -Credential $O365Cred -Confirm:$true
(Get-AzureADGroup -SearchString "Minioms").ObjectId

El resultado que obtendremos por pantalla es el siguiente:

image

Office 365: Access to SPO Access Requests from Site Contents page!

Microsoft is adding more and more functionality to the new SPO Site Contents page so additionally to have access from there to the new site usage page, we can also access the Access requests page:

image

Once you click the “Access requests” action, you will be redirected to the “Access requests” page so you can approve or reject any access request to the site.

image

Office 365: Acceso a las Solicitudes de Acceso de SPO desde la Página de Contenidos del Sitio (I)!

La nueva página de contenidos de SharePoint Online (SPO) sigue ganando en funcionalidades, y además de proporcionar acceso al uso del sitio, también proporciona acceso a las solicitudes de acceso al sitio:

image

Al hacer clic sobre la acción “Access requests” accederemos a la página de peticiones de acceso para aprobar o rechazar la solicitud.

image

SharePoint 2016: Workflow Manager is now supported on SQL Server 2016 and Windows Server 2016!

With the recent Cumulative Update (CU) 4 for Workflow Manager, Microsoft has finally added support to the following platforms:

  • .NET 4.6+ (when using Service Bus Server 1.1 with KB3086798)
  • Windows Server 2016
  • Windows 10 x64 (for development purposes)
  • SQL Server 2014 & SQL Server 2016

References

SharePoint 2016: Finalmente Workflow Manager es soportado en SQL Server 2016 y Windows Server 2016!

Finalmente con la reciente Cumulative Update (CU) 4 de Workflow Manager, Microsoft ha añadido el esperado soporte de las siguientes plataformas

  • .NET 4.6+ (when using Service Bus Server 1.1 with KB3086798)
  • Windows Server 2016
  • Windows 10 x64 (for development purposes)
  • SQL Server 2014 & SQL Server 2016

Referencias:

Office 365: How to Get all Guests Users in an Office 365 tenant with PowerShell (II)!

This time I’m sharing a PowerShell script that allows to get all the Guests Users in an Office 365 teantn and export them to a CSV file using PowerShell for Azure AD (Note: You can check my previous article on this topic here).You can download the script from the following URL: How to get all guests users in an Office 365 tenant using PowerShell Azure AD

############################################################################################################################################
# Script that allows to get all the members of all the Guest Users in an Office 365 tenant by means of Azure AD PowerShell cmdlets
# Required Parameters:
#  ->sCSVFilenName: Name of the file to be generated
############################################################################################################################################

$host.Runspace.ThreadOptions = "ReuseThread"

#Definition of the function that get all the Guest Users in an Office 365 tenant through Azure AD PowerShell cmdlets and export the results to a CSV file
function Get-O365GuestsUsersThroughAzureAD
{   
    param($sCSVFileName) 
    Try
    {   
        [array]$O365GuestsUsers = $null
        $O365TenantGuestsUsers=Get-AzureADUser -Filter "Usertype eq 'Guest'”
        foreach ($O365GuestUser in $O365TenantGuestsUsers) 
        { 
            $O365GuestsUsers=New-Object PSObject
            $O365GuestsUsers | Add-Member NoteProperty -Name "Guest User DisplayName" -Value $O365GuestUser.DisplayName
            $O365GuestsUsers | Add-Member NoteProperty -Name "User Principal Name" -Value $O365GuestUser.UserPrincipalName
            $O365GuestsUsers | Add-Member NoteProperty -Name "Mail Address" -Value $O365GuestUser.Mail
            $O365AllGuestsUsers+=$O365GuestsUsers  
        } 
        $O365AllGuestsUsers | Export-Csv $sCSVFileName
    }
    catch [System.Exception]
    {
        Write-Host -ForegroundColor Red $_.Exception.ToString()   
    } 
}


#Connection to Office 365
$sUserName="<Your_Office365_Admin_Account>"
$sMessage="Introduce your Office 365 Credentials"
#Connection to Office 365
$O365Cred=Get-Credential -UserName $sUserName -Message $sMessage
#Creating an EXO PowerShell session
Connect-AzureAD -Credential $O365Cred -Confirm:$true


$sCSVFileName="AllTenantGuestsUsers.csv"
#Getting Tenant Guests Users
Get-O365GuestsUsersThroughAzureAD -sCSVFileName $sCSVFileNam