Nilai parameter yang diharapkan, didapat "è saat mengirim email menggunakan Amazon SES di C#

Saya telah menggunakan Amazon SES untuk mengirim email dengan lampiran. Jika saya melampirkan lampiran dengan nama bahasa Inggris, itu berfungsi dengan benar tetapi jika saya melampirkan resume Cina, itu menimbulkan kesalahan Nilai parameter yang diharapkan, dapatkan "è. Deskripsi kesalahan tidak jelas dan saya mencoba menyandikan dengan format berbeda tetapi mendapatkan kesalahan yang sama.

Di bawah ini adalah kode yang saya gunakan untuk membuat pesan email dan mengirimnya

public static MailResponse SendRawEmail(String from, List<string> to,List<string> ccAddresses,List<string> bccAddresses, String Subject, string body=null,List<string> attachments=null, String html = null,Salesforce.Contact[] contacts=null, String replyTo = null, String returnPath = null)
{
    MailResponse mresponse = new MailResponse();
    try
    {
        MailMessage mailMessage = new MailMessage();
        mailMessage.From = new MailAddress(from);


       mailMessage.Body = body;

        mailMessage.Subject = Subject;
        mailMessage.SubjectEncoding = Encoding.UTF8;
        foreach (string attachment in attachments)
            mailMessage.Attachments.Add(new System.Net.Mail.Attachment(attachment));

        if (body != null)
        {
            AlternateView plainView = AlternateView.CreateAlternateViewFromString(body, Encoding.UTF8, "text/plain");
            mailMessage.AlternateViews.Add(plainView);
        }

        if (html != null)
        {
            AlternateView htmlView = AlternateView.CreateAlternateViewFromString(html, Encoding.UTF8, "text/html");
            mailMessage.AlternateViews.Add(htmlView);
        }

        RawMessage rawMessage = new RawMessage();
         Amazon.SimpleEmail.IAmazonSimpleEmailService ses;
        if(ConfigurationManager.AppSettings["AWSRegion"]=="USWest2")
         ses = AWSClientFactory.CreateAmazonSimpleEmailServiceClient(ConfigurationManager.AppSettings["AWSAccessKey"], ConfigurationManager.AppSettings["AWSSecretKey"],Amazon.RegionEndpoint.USWest2);
        else
            ses = AWSClientFactory.CreateAmazonSimpleEmailServiceClient(ConfigurationManager.AppSettings["AWSAccessKey"], ConfigurationManager.AppSettings["AWSSecretKey"],Amazon.RegionEndpoint.USEast1);

        foreach (String toAddress in to)
        {
            mailMessage.To.Add(new MailAddress(toAddress));

            using (MemoryStream memoryStream = ConvertMailMessageToMemoryStream(mailMessage))
            {
                rawMessage.Data = memoryStream;
            }
            SendRawEmailRequest request = new SendRawEmailRequest();
            request.RawMessage = rawMessage;
            request.Source = from;
            request.Destinations.Add(toAddress);
            CallAmazonSES(request, ses);
            request.Destinations.Clear();
            mailMessage.To.Clear();
        }
        foreach (String ccAddress in ccAddresses)
        {
            mailMessage.CC.Add(new MailAddress(ccAddress));
            using (MemoryStream memoryStream = ConvertMailMessageToMemoryStream(mailMessage))
            {
                rawMessage.Data = memoryStream;
            }
            SendRawEmailRequest request = new SendRawEmailRequest();
            request.RawMessage = rawMessage;
            request.Source = from;
            request.Destinations.Add(ccAddress);
            CallAmazonSES(request, ses);
            request.Destinations.Clear();
            mailMessage.CC.Clear();
        }

        List<List<string>> bccAddressesList = Split(bccAddresses);
        foreach (List<String> bcclist in bccAddressesList)
        {
            using (MemoryStream memoryStream = ConvertMailMessageToMemoryStream(mailMessage))
            {
                rawMessage.Data = memoryStream;
            }
            SendRawEmailRequest request = new SendRawEmailRequest();
            request.RawMessage = rawMessage;
            request.Source = from;

            request.Destinations.AddRange(bcclist);

            CallAmazonSES(request, ses);
        }


        mresponse.Response = "Mail sent succesfully";

    }
   catch (Exception ex)
    {
        mresponse.Response = "Mail failed due to " + ex.Message;
    }
    return mresponse;
}

Pelacakan tumpukan : di Amazon.Runtime.AmazonWebServiceClient.HandleHttpWebErrorResponse(AsyncResult asyncResult, WebException we) di Amazon.Runtime.AmazonWebServiceClient.getResponseCallback(hasil IAsyncResult) di Amazon.Runtime.AmazonWebServiceClient.endOperation[T](hasil IAsyncResult) di Amazon.SimpleEmail. AmazonSimpleEmailServiceClient.SendRawEmail(permintaan SendRawEmailRequest) di Blogic.CallAmazonSES(MailMessage mailMessage, RawMessage rawMessage, String dari, String ke, IAmazonSimpleEmailService ses) di c:\inetpub\wwwroot\TalentRover\App_Code\Blogic.cs:line 371 di Blogic.SendRawCustomE surat( String dari, List1 ccAddresses, List1 bccAddresses, String Subject, RequestArguments args, String mailField, Boolean showOptout, String body, List1 attachments, String html, List1 kontak, String replyTo, String returnPath, String contactId, String callListId) di c:\inetpub\wwwroot\TalentRover\App_Code\Blogic. cs:baris 236

   Exception message : Expected parameter value, got "è"

tautan ke kode lengkap https://Gist.github.com/lmedikonda/ec1315517bef421c49dd4912cb52e547


person Lax_me    schedule 09.07.2018    source sumber
comment
teks pengecualian penuh dan tumpukan panggilan yang menunjukkan nomor baris? mungkin terkait   -  person Cee McSharpface    schedule 09.07.2018
comment
Harap tambahkan pesan Pengecualian dan jejak tumpukan di pertanyaan Anda yang akan membantu Anda mendapatkan jawaban dengan cepat,   -  person Mihir Dave    schedule 09.07.2018
comment
@MihirDave menambahkan pelacakan tumpukan dan pesan pengecualian di sini   -  person Lax_me    schedule 09.07.2018
comment
@Lax_me, tumpukan panggilan mengatakan bahwa pengecualian diberikan oleh metode Blogic.CallAmazonSES Anda, bukan SendRawCustomEmail. Posting kode yang benar-benar muncul dan string pengecualian penuh. Anda bisa mendapatkannya dengan mudah dengan Exception.ToString(). Ini akan mencakup pesan, tumpukan panggilan, dan pengecualian internal apa pun   -  person Panagiotis Kanavos    schedule 09.07.2018
comment
@Lax_me btw Anda dapat men-debug kode itu secara lokal untuk memeriksa apa yang salah. Jika isi pesan tidak valid, kode akan tetap gagal   -  person Panagiotis Kanavos    schedule 09.07.2018
comment
@PanagiotisKanavos Saya melakukan debugging di mesin lokal saya dan saya mendapatkan pengecualian ketika saya memanggil metode Amazon SDK SendRawEmail SendRawEmailResponse respon = ses.SendRawEmail(request);   -  person Lax_me    schedule 09.07.2018
comment
Mendapatkan kesalahan ini hanya ketika saya mengirim lampiran berbahasa Mandarin dan saya tidak mendapatkan pengecualian jika saya hanya mengirim lampiran isi atau bahasa Inggris   -  person Lax_me    schedule 09.07.2018
comment
salin kode lengkapnya di sini gist.github.com/lmedikonda/ec1315517bef421c49dd4912cb52e547   -  person Lax_me    schedule 09.07.2018
comment
@Lax_me dan? Kemana dilemparnya? Apa pengecualian penuhnya? Seperti apa pesan itu? Gunakan contoh sederhana. Satu penerima, satu pesan sudah cukup untuk mereproduksi ini. Meskipun masalahnya hampir pasti adalah konversi yang buruk ke UTF8. Bagaimanapun, ini terlalu banyak kode untuk mengirim pesan email. Mengapa SmptClient muncul di sini ketika kode sebenarnya ingin berbicara dengan AWS SES?   -  person Panagiotis Kanavos    schedule 09.07.2018
comment
@Lax_me apakah Anda memeriksa dokumen SES untuk C# ?   -  person Panagiotis Kanavos    schedule 09.07.2018