PowerShell使用阿里云企业邮箱发送邮件


阿里云服务器默认25号端口默认是关闭的,如果想打开得专门写申请,我也是醉了,太中国特色。所以要通过smtp客户端发邮件,还得使用ssl端口,记住是587,不是465。
Send-MailMessage的内部使用的是.Net 的 SmtpClient 类,这是.NET已知的坑。

我的需求是先备份数据库文件,然后给文件加密,最后通过smtp客户端发送给管理员。

#
# Send mail
#
function Send-DBBackupMail
{
    param(
    $Attachments
    )
    $user = "发件人邮箱"
    $passwd = "发件人密码"
    $to = '收件人'

    $password = ConvertTo-SecureString –String $passwd -AsPlainText -Force
    $credential = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $user, $password

    $body = '数据库备份 @ {0}' -f (Get-Date)
    Send-MailMessage `
    -From $user `
    -to $to `
    -Subject "数据库备份通知" `
    -Body $body `
    -SmtpServer smtp.mxhichina.com `
    -Port 587 `
    -Credential $credential `
    -UseSsl `
    -Attachments $Attachments
}
$sqlfile = "$PSScriptRoot/{0:yyyy-MM-dd_HHmmss}.sql" -f (Get-Date)

# 备份数据库
mysqldump --databases mydb -uroot -p密码 > $sqlfile

# 压缩文件并加密
$file = $sqlfile+'.zip'
zip $file  $sqlfile --password 压缩码密码

#发送邮件
Send-DBBackupMail -Attachments @($file)

#删除未加密的文件
rm $sqlfile
本文链接: https://www.pstips.net/send-mail-from-aliyun-mail.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注