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