Скрипт Powershell не работает для вложения - PullRequest
0 голосов
/ 25 апреля 2019
$EmailFrom = "xx@gmail.com"

$EmailTo = "yy.com"

$Subject = "Testing, Testing 123"

$Body = "this is a notification from XYZ Notifications.."

$Attachment = "C:\Users\XX\Desktop\Importanttxts\old.txt"

$SMTPServer = "smtp.gmail.com"

$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)

$SMTPClient.EnableSsl = $true

$SMTPClient.CredentialsObjectSystem.Net.NetworkCredential("pm8566","123456");

$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body, $Attachment)

cmd /c pause | out-null

Это мой сценарий powershell, он отлично работает, но без вложений не может отправить вложение.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

PowerShell v3 имеет встроенный командлет для использования по почте.Send-MailMessage.

Send-MailMessage

По какой причине вы решили использовать .Net против командлета?

Командлет можно использовать с Gmail.
PowerShell: отправка электронной почты с помощью Send-MailMessage (пример Gmail)

$From = "YourEmail@gmail.com"
$To = "AnotherEmail@YourDomain.com"
$Cc = "YourBoss@YourDomain.com"
$Attachment = "C:\temp\Some random file.txt"
$Subject = "Email Subject"
$Body = "Insert body text here"
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"
Send-MailMessage -From $From -to $To -Cc $Cc -Subject $Subject `
-Body $Body -SmtpServer $SMTPServer -port $SMTPPort -UseSsl `
-Credential (Get-Credential) -Attachments $Attachment

# PSTip Sendingэлектронные письма, использующие ваш аккаунт Gmail

$param = @{
    SmtpServer = 'smtp.gmail.com'
    Port = 587
    UseSsl = $true
    Credential  = 'you@gmail.com'
    From = 'you@gmail.com'
    To = 'someone@somewhere.com'
    Subject = 'Sending emails through Gmail with Send-MailMessage'
    Body = "Check out the PowerShellMagazine.com website!"
    Attachments = 'D:\articles.csv'
}

Send-MailMessage @param
0 голосов
/ 25 апреля 2019

Попробуйте:

$smtpFrom = "xx@gmail.com"
$smtpTo = "yy.com"

$SMTPServer = "smtp.gmail.com"

$SMTPClient = New-Object System.Net.Mail.MailMessage $smtpfrom, $smtpto

$SMTPClient.Subject = "Testing, Testing 123"

$SMTPClient.Attachments = "C:\Users\XX\Desktop\Importanttxts\old.txt"

$SMTPClient.Body = "this is a notification from XYZ Notifications.."

$SMTPClient.EnableSsl = $true

$smtp = New-Object Net.Mail.SmtpClient($SMTPServer)

$smtp.CredentialsObjectSystem.Net.NetworkCredential("pm8566","123456");

$smtp.Send($SMTPClient)

cmd /c pause | out-null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...