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, List
1 ccAddresses, List
1 bccAddresses, String Subject, RequestArguments args, String mailField, Boolean showOptout, String body, List1 attachments, String html, List
1 kontak, String replyTo, String returnPath, String contactId, String callListId) di c:\inetpub\wwwroot\TalentRover\App_Code\Blogic. cs:baris 236Exception message : Expected parameter value, got "è"
tautan ke kode lengkap https://Gist.github.com/lmedikonda/ec1315517bef421c49dd4912cb52e547
Blogic.CallAmazonSES
Anda, bukanSendRawCustomEmail
. Posting kode yang benar-benar muncul dan string pengecualian penuh. Anda bisa mendapatkannya dengan mudah denganException.ToString()
. Ini akan mencakup pesan, tumpukan panggilan, dan pengecualian internal apa pun - person Panagiotis Kanavos   schedule 09.07.2018SmptClient
muncul di sini ketika kode sebenarnya ingin berbicara dengan AWS SES? - person Panagiotis Kanavos   schedule 09.07.2018