求基于AWS SES的Python代码:发送CSV文件至指定邮箱
使用AWS SES发送带CSV附件的Python代码示例
以下是基础的Python代码,用于通过AWS SES发送包含CSV附件的邮件到指定邮箱:
首先确保安装依赖:
pip install boto3
完整代码
import boto3 from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.application import MIMEApplication import os # 初始化SES客户端,替换为你的AWS区域 ses_client = boto3.client('ses', region_name='us-east-1') # 配置邮件参数 sender = "verified-sender@yourdomain.com" # 必须是AWS SES验证过的发件邮箱 recipient = "abc@gmail.com" subject = "CSV文件附件" body = "您好,这是您需要的CSV文件,请查收附件。" # 构造多部分邮件(支持文本+附件) message = MIMEMultipart() message['From'] = sender message['To'] = recipient message['Subject'] = subject # 添加邮件正文 message.attach(MIMEText(body, 'plain')) # 读取并添加CSV附件 csv_path = "/path/to/your/target.csv" # 替换为你的CSV文件路径 with open(csv_path, 'rb') as csv_file: attachment = MIMEApplication(csv_file.read(), Name=os.path.basename(csv_path)) # 设置附件的Content-Disposition头,确保邮件客户端识别为附件 attachment['Content-Disposition'] = f'attachment; filename="{os.path.basename(csv_path)}"' message.attach(attachment) # 发送邮件 try: response = ses_client.send_raw_email( Source=sender, Destinations=[recipient], RawMessage={'Data': message.as_string()} ) print(f"邮件发送成功,消息ID: {response['MessageId']}") except Exception as err: print(f"发送失败,错误信息: {err}")
关键注意事项
- 发件邮箱验证:沙箱模式下的AWS SES要求发件邮箱必须经过验证;若账号已移出沙箱,则可发送至任意邮箱。
- AWS权限配置:确保你的AWS凭证(通过
~/.aws/credentials或环境变量配置)拥有ses:SendRawEmail权限。 - 区域选择:替换代码中的
region_name为你实际使用的AWS区域(如ap-southeast-1)。 - 路径替换:务必将
csv_path替换为你本地CSV文件的实际路径。
内容的提问来源于stack exchange,提问作者Shivam JINDAL
相关产品推荐
相关产品推荐

