AWS C ++ SDK, Как отправить пользовательское письмо с помощью SES? - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь отправить и отправить электронное письмо из моего приложения Qt / C ++ с помощью функции sendRawEmail библиотеки AWS / SES .Я буду использовать эту функцию, потому что мне придется отправлять электронные письма с прикрепленными документами.

Я пробовал этот код, но он не работает ... Пожалуйста, кто-то может мне помочь?

Aws::SES::Model::SendRawEmailRequest sendRawEmailRequest;

DestinationsVector.emplace_back(email_contact.toStdString().c_str());
sendRawEmailRequest.SetDestinations(DestinationsVector);

sendRawEmailRequest.SetSource(email_contact.toStdString().c_str());

QString rawMsg;
QTextStream rawMsgStream(&rawMsg);
rawMsgStream << "From: " <<  email_contact << "\\n";
rawMsgStream << "To: " << email_contact << "\\n";
rawMsgStream << "Subject: " << "my Title" <<"\\n";
rawMsgStream << "MIME-Version: 1.0\\n";
rawMsgStream << "Content-type: multipart/related; boundary=\"NextPart\"\\n";
rawMsgStream << "Content-Transfer-Encoding: base64\\n";
rawMsgStream << "\\n--NextPart\\n";
rawMsgStream << "Content-Type: text/plain; charset=utf-8\\n ";
rawMsgStream << "My message" << "\\n--NextPart--\\n";

QByteArray buff64 = rawMsg.toLocal8Bit().toBase64();
Aws::Utils::ByteBuffer buff((const unsigned char*)buff64.toStdString().c_str(),buff64.size());

Aws::SES::Model::RawMessage rm;
rm.SetData(buff);
sendRawEmailRequest.SetRawMessage(rm);

auto outcome = _clientEmailService->SendRawEmail(sendRawEmailRequest);
if (outcome.IsSuccess()){
   return tr("Email sent!");
}
else {
   outcome.GetError().GetMessage().c_str();
   return outcome.GetError().GetMessage().c_str();
}

Вот причина отказа, отправленная Amazon SES:

Diagnostic-Code: smtp; 550-5.7.1 [54.240.8.64      11] Our system has detected that this message is not
 550-5.7.1 RFC 5322 compliant:
 550-5.7.1 'From' header is missing.
 550-5.7.1 To reduce the amount of spam sent to Gmail, this message has been
 550-5.7.1 blocked. Please visit
 550-5.7.1  https://support.google.com/mail/?p=RfcMessageNonCompliant
 550 5.7.1 and review RFC 5322 specifications for more information.    51-v6si822773qvt.246 - gsmtp
 Status: 5.7.1
...