阿里云服务器默认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
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
