本文目录导读:

是的,可以通过脚本批量发送SMTP邮件,下面我提供几种常见的实现方式:
Python脚本(最灵活)
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import csv
def send_bulk_emails(smtp_server, port, username, password, csv_file):
# 连接到SMTP服务器
server = smtplib.SMTP(smtp_server, port)
server.starttls()
server.login(username, password)
# 读取CSV文件(每行:email, subject, content)
with open(csv_file, 'r') as f:
reader = csv.reader(f)
for row in reader:
to_email, subject, content = row
msg = MIMEMultipart()
msg['From'] = username
msg['To'] = to_email
msg['Subject'] = subject
msg.attach(MIMEText(content, 'plain'))
try:
server.sendmail(username, [to_email], msg.as_string())
print(f"✓ 已发送到 {to_email}")
except Exception as e:
print(f"✗ 发送失败 {to_email}: {e}")
server.quit()
# 使用示例
send_bulk_emails(
"smtp.gmail.com", 587,
"your_email@gmail.com",
"your_app_password", # Gmail需要应用专用密码
"recipients.csv"
)
Bash脚本(Linux/Unix)
#!/bin/bash
# 发送批量邮件
while IFS=',' read -r email subject content
do
echo -e "Subject: $subject\n\n$content" | \
sendmail -v "$email"
echo "已发送到:$email"
done < emails.csv
# 使用 ssmtp
while IFS=',' read -r email subject content
do
cat << EOF | ssmtp "$email"
Subject: $subject
To: $email
$content
EOF
echo "已发送到:$email"
done < emails.csv
PowerShell脚本(Windows)
# 批量发送邮件
$smtpServer = "smtp.office365.com"
$smtpPort = 587
$from = "your@domain.com"
$password = "your-password"
$mailList = Import-Csv "recipients.csv"
foreach ($mail in $mailList) {
$params = @{
SmtpServer = $smtpServer
Port = $smtpPort
UseSsl = $true
Credential = New-Object System.Management.Automation.PSCredential($from, (ConvertTo-SecureString $password -AsPlainText -Force))
From = $from
To = $mail.Email
Subject = $mail.Subject
Body = $mail.Content
}
try {
Send-MailMessage @params
Write-Host "✓ 已发送到 $($mail.Email)"
}
catch {
Write-Host "✗ 发送失败 $($mail.Email): $_"
}
}
Node.js脚本
const nodemailer = require('nodemailer');
const fs = require('fs');
// 配置传输器
const transporter = nodemailer.createTransport({
host: 'smtp.gmail.com',
port: 587,
secure: false,
auth: {
user: 'your@gmail.com',
pass: 'your-app-password'
}
});
// 读取CSV文件
const csv = require('csv-parser');
const recipients = [];
fs.createReadStream('recipients.csv')
.pipe(csv())
.on('data', (row) => recipients.push(row))
.on('end', async () => {
for (const recipient of recipients) {
try {
await transporter.sendMail({
from: '"发件人" <your@gmail.com>',
to: recipient.email,
subject: recipient.subject,
text: recipient.content
});
console.log(`✓ 已发送到 ${recipient.email}`);
} catch (error) {
console.log(`✗ 发送失败 ${recipient.email}: ${error.message}`);
}
}
});
重要注意事项
⚠️ 使用前必须注意:
- 验证收件人:确保有收件人同意
- 限制发送频率:避免被标记为垃圾邮件
- 使用应用专用密码:Gmail等需要
- 遵守法规:遵循当地反垃圾邮件法律
- 添加退订链接:商业邮件需要
推荐方案:
- 小型批量(<100封):Python脚本
- 中型批量(100-1000封):专业邮件服务API
- 大型批量(>1000封):使用SendGrid/Mailgun等商业服务
需要具体的CSV格式模板或更多定制功能吗?
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播