質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

1377閲覧

AWS LambdaからAWS SESで、本文に日本語があるメールを送信できない

koba_tatsu

総合スコア0

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2022/07/23 04:51

前提

AWS LambdaからAWS SES(simple email service)を使用して、メール送信を行いたいです。
メールの本文に日本語を使用すると、メールが送信されません。

実現したいこと

本文で日本語を使用して、SESからメールを送信したい。

該当のソースコード

python3.9

1import json 2import os 3import boto3 4 5SRC_MAIL = os.environ['SRC_MAIL'] # Formメールアドレス 6DST_MAIL = os.environ['DST_MAIL'] # Toメールアドレス 7REGION = "ap-northeast-1" 8CHARSET = 'UTF-8' 9 10def send_email(source, to, subject, body): 11 client = boto3.client('ses', region_name=REGION) 12 13 response = client.send_email( 14 Source=source, 15 Destination={ 16 'ToAddresses': [ 17 to, 18 ] 19 }, 20 Message={ 21 'Subject': { 22 'Data': subject, 23 'Charset': CHARSET, 24 }, 25 'Body': { 26 'Text': { 27 'Data': body, 28 'Charset': CHARSET, 29 }, 30 } 31 } 32 ) 33 34 return response 35 36def lambda_handler(event, context): 37 email_subject = "件名" 38 email_message = "こんにちは" 39 r = send_email(SRC_MAIL, DST_MAIL, email_subject, email_message) 40 return r

試したこと

  • 件名は日本語でも問題なく送信できます

  • メールの本文を英文字にすると問題なく送付することができます

email_message = "hello"

  • 文字コードを指定しても送信できませんでした

'Charset': 'UTF-8',

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_1985

2022/07/23 14:09

あまり聞いたことのない事象ですが、原因が本当に日本語だからなのかが気になります。 下記について確認して、本文に追記してください。 - 「送信されない」ということは何をもって確認したか - 該当アカウントのSESはサンドボックス外に移動済みか - メールの本文を英文字にしたとき、送信先は本文が日本語だったときと同じか - SESのコンソールやCloudWatchなどでSESの送信件数が増えているか、またバウンスになっていないか - Lambda Functionのログになにか出ていないか
koba_tatsu

2022/07/25 01:07

yu_1985さんご質問ありがとうございます。 >「送信されない」ということは何をもって確認したか - スクリプト実行後、5分以上たっても送信元アドレスで送信済みメールを確認できていないかつ、宛先アドレスでも受信できていない(迷惑メールにもない)ことから、「送信されない」としました。 >該当アカウントのSESはサンドボックス外に移動済みか サンドボックス外に移動しておりません。なので送信元アドレス=宛先アドレスです サンドボックス開放で優先言語を英語か日本語を選ぶ欄があるので、ここを日本語にしたら直る可能性もあるのかなと思いました。 >該当アカウントのSESはサンドボックス外に移動済みか - 同様です >SESのコンソールやCloudWatchなどでSESの送信件数が増えているか、またバウンスになっていないか Countが正常に増えております。Bouncesは0%です。 >Lambda Functionのログになにか出ていないか エラーなどは出ておらず、正常に見受けられます
yu_1985

2022/07/25 06:15

念の為ですが、送信元アドレス=宛先アドレスは検証済みになっていますか?
koba_tatsu

2022/07/25 06:39

送信元アドレス=宛先アドレスのテストメールでは日本語でも問題なく送信できております。
guest

回答1

0

サンドボックス外に移動していない場合、検証済みのメールアドレスやドメイン以外に送信することはできません。

Amazon SES サンドボックス外への移動

E メールの送信先は、検証済み E メールアドレスおよびドメイン、または Amazon SES メールボックスシミュレーターに制限されます。

投稿2022/07/25 08:11

yu_1985

総合スコア7447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問