MySQL 本身并不提供內置的郵件發送功能,但你可以使用第三方工具或編寫自定義腳本來實現郵件發送,并加入自動重試的邏輯。
以下是一個簡單的示例,展示如何使用 Python 的 smtplib
庫發送郵件,并在發送失敗時進行自動重試:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import time
def send_email(smtp_server, port, sender_email, sender_password, receiver_email, subject, body):
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = receiver_email
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
try:
server = smtplib.SMTP(smtp_server, port)
server.starttls()
server.login(sender_email, sender_password)
text = msg.as_string()
server.sendmail(sender_email, receiver_email, text)
server.quit()
print("郵件發送成功")
except Exception as e:
print(f"郵件發送失敗,錯誤信息:{e}")
print("將在 5 秒后重試...")
time.sleep(5)
send_email(smtp_server, port, sender_email, sender_password, receiver_email, subject, body)
# 使用示例
smtp_server = 'smtp.example.com'
port = 587
sender_email = 'your_email@example.com'
sender_password = 'your_email_password'
receiver_email = 'receiver@example.com'
subject = '測試郵件'
body = '這是一封測試郵件'
send_email(smtp_server, port, sender_email, sender_password, receiver_email, subject, body)
請注意,上述示例僅用于演示目的,實際使用時你需要將 smtp_server
、port
、sender_email
和 sender_password
替換為實際的值。此外,為了安全起見,建議使用環境變量或配置文件來存儲敏感信息,而不是直接寫在腳本中。
在上述示例中,如果郵件發送失敗,腳本會在 5 秒后自動重試。你可以根據需要調整重試的時間間隔和重試次數。