AWS 초절 초보자가 SES를 사용하여 메일을 일괄 전송해 보았습니다.
그래서 생 따뜻하게 지켜주세요.
하고 싶은 일
나열된 이메일 주소로 해당 주소를 문장에 담은 이메일을 보내고 싶습니다.
기본적으로는 아래의 기사를 참고로 구현. 항목도 인용 받고 있습니다.
SES에서 소스 이메일 주소 등록
여기 잘 됐다. 방법은 그물에 넘쳐서 할애
DynamoDB로 사용자 테이블 만들기
? ? ?
userId(PK)이란? ? ? 기본 키라는 것을 알았지만,
a06b7c45-1303-45bf-a2d7-fec53fbc224c라든지가 무엇을 나타내고 있는지 모르기 때문에,
일단 다음과 같이 설명
userId(PK)
이름
emailAddress
1
타로
st1 @ x. 이 m
2
하나코
st2 @ x. 이 m
메일 배달 람다 함수 구현
Lambda 함수를 구현할 때 DynamoDB 및 SES 권한이 필요합니다.
설명이 있었기 때문에 IAM에서 다음 권한을 가진 역할을 만듭니다.
여기 잘 됐다. 방법은 그물에 넘쳐서 할애
DynamoDB로 사용자 테이블 만들기
? ? ?
userId(PK)이란? ? ? 기본 키라는 것을 알았지만,
a06b7c45-1303-45bf-a2d7-fec53fbc224c라든지가 무엇을 나타내고 있는지 모르기 때문에,
일단 다음과 같이 설명
userId(PK)
이름
emailAddress
1
타로
st1 @ x. 이 m
2
하나코
st2 @ x. 이 m
메일 배달 람다 함수 구현
Lambda 함수를 구현할 때 DynamoDB 및 SES 권한이 필요합니다.
설명이 있었기 때문에 IAM에서 다음 권한을 가진 역할을 만듭니다.
Lambda 함수를 구현할 때 DynamoDB 및 SES 권한이 필요합니다.
설명이 있었기 때문에 IAM에서 다음 권한을 가진 역할을 만듭니다.
index.js의 샘플 코드를 보아도, 아칸,,,, JavaScript 전혀 모르는,,,,
파이썬으로 쓰자. . .
을 실현할 수 있으면, 일단 움직일 것이다.
자신의 쓰는 법이 별로 좋지 않은 것은 알 수 있다.
dynamoses.py
import boto3
import json
REGION = "ap-northeast-1"
#送信元
SRC_MAIL = "[email protected]"
#送信先
#DST_MAIL = "[email protected]"
MESSAGE = "様へ これはテストです!"
#タイトル
EMAIL = "テスト配信"
def send_email(source, to, subject, body):
client = boto3.client('ses', region_name=REGION)
response = client.send_email(
Source=source,
Destination={
'ToAddresses': [
to,
]
},
Message={
'Subject': {
'Data': subject,
},
'Body': {
'Text': {
'Data': body,
},
}
}
)
return response
def lambda_handler(event, context):
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('User')
#シンプルにscanメソッドの呼び出しをする
response = table.scan()
#取得レコードは"item"ではなく"items"!
items = response['Items']
#メールアドレス取得
newadd = list()
newname = list()
for ke in items:
for k in ke.keys():
if k =='emailAddress':
newadd.append(ke[k])
elif k =='name':
newname.append(ke[k])
email = EMAIL
#message = json.dumps(event, indent = 4,ensure_ascii=False)
message = MESSAGE
for DST_MAIL,atesaki in zip(newadd,newname):
message = atesaki + MESSAGE
r = send_email(SRC_MAIL, DST_MAIL, email, message)
print(DST_MAIL)
return r
참고
결과
무사히, 「XX님」이 메아드에 대응하는 이름이 된 문면의 메일을 보낼 수 있었습니다
걸린 시간
7시간 강한 정도
하고 싶은 곳
7시간 강한 정도
하고 싶은 곳
추가: 메일 문면을 txt 파일 로드로 변경. 변수로 이름이나 주소라든지 날짜라든지 넣을 수 있도록 했다.
오송이 무섭기 때문에, 읽어들인 요소를 넣은 list의 length를 비교해, 다르면 강제 종료하도록(듯이) 했다.
if len(newname) == len(newadd) and len(newname) == len(newdate) and len(newname) == len(newtime) :
print("要素数が合っています")
print(newname,newadd,newdate,newtime)
else :
print("要素数が合いません、確認してください")
sys.exit(1)
결국 공식 사이트가 제일 참고가 되는 이야기. BCC의 설정이 쓰여 있는 블로그가 보이지 않았지만, 보통으로 쓰여 있었다.
Destination={
'ToAddresses': [
'string',
],
'CcAddresses': [
'string',
],
'BccAddresses': [
'string',
]
},
Reference
이 문제에 관하여(AWS 초절 초보자가 SES를 사용하여 메일을 일괄 전송해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ostost/items/9ca90fd98393c631fbdc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)