Korzystanie z interfejsu API Gmaila w .Net. Tworzenie wiadomości za pomocą Net.Mail.MailMessage. Następnie za pomocą MimeKit utwórz MimeMessage (używając tego do wysyłania załącznika + wiadomości HTML). Przekazywanie MimeMessage.ToString do kodera Base64. Brak błędu interfejsu API. Kod przebiega przez ok. Widzę komunikat na stronie wysłanej w GMailu. Poczta wygląda perfekcyjnie (a wysłany identyfikator rzeczywiście zwraca wiadomość). Ale jest też następująca dołączona wiadomość do tej poczty w Gmailu.Wiadomości e-mail GMail API Bouncing
Bounce <[email protected]>
An error occurred. Your message was not sent.
Jak zwykle brak innych informacji od Google. Jak to naprawić?
Dim msg = New Net.Mail.MailMessage
msg.Subject = subject
msg.To.Add(New MailAddress(ToEmail))
msg.From = New MailAddress(FromEmail, SenderName)
msg.ReplyTo = New MailAddress(FromEmail, SenderName)
msg.Body = bodyText
msg.IsBodyHtml = True
If Not String.IsNullOrWhiteSpace(fileAttachment) Then
If System.IO.File.Exists(fileAttachment) Then
Dim Attachment As New Net.Mail.Attachment(fileAttachment, "application/pdf")
msg.Attachments.Add(Attachment)
End If
End If
Dim message As MimeMessage = MimeMessage.CreateFromMailMessage(msg)
Dim newMsg = New Google.Apis.Gmail.v1.Data.Message()
newMsg.Raw = Base64UrlEncode(message.ToString)
GmailService.Users.Messages.Send(newMsg, "me").Execute()
Private Function Base64UrlEncode(ByVal input As String) As String
Dim inputBytes = System.Text.Encoding.UTF8.GetBytes(input)
'Special "url-safe" base64 encode.
Return Convert.ToBase64String(inputBytes).Replace("+", "-").Replace("/", "_").Replace("=", "")
End Function
To jest wiadomość zwrotna. Jak widać wszystko wygląda dobrze. Praca z Google API jest najbardziej frustrująca.
200 OK
- Hide headers -
cache-control: no-cache, no-store, max-age=0, must-revalidate
content-encoding: gzip
content-length: 85
content-type: application/json; charset=UTF-8
date: Sat, 24 Jan 2015 05:57:21 GMT
etag: "96Z6JVARoyR8skov3RseF4DCFpA/mFWFskkdSFxyjIhRJHJuhDCBvfY"
expires: Fri, 01 Jan 1990 00:00:00 GMT
pragma: no-cache
server: GSE
vary: Origin, X-Origin
{
"id": "14b1a841e4fff910",
"threadId": "14b1a841e4fff910",
"labelIds": [
"SENT"
]
}
postarać się o to uruchomiony w [API Explorer] (https://developers.google.com/gmail/api/v1/reference/users/messages/send#try-it) po pierwsze, patrz również http://stackoverflow.com/a/24461102/1545993 – Taifun
Takie same wyniki w Eksploratorze API. Wiadomość przechodzi, ale nie została dostarczona. Tak, czytam tę stronę. Robię dokładnie to. Mój problem polega na tym, że jeśli coś jest nie tak w formacie, GMail API powinien mieć wyjątek. Ponadto poczta wygląda idealnie, gdy sprawdzę folder wysyłany w Gmailu. Oznacza to, że struktura danych i formatowanie były w porządku. Czy istnieje sposób na nawiązanie kontaktu z tymi świetnymi programistami Google? –
Użyj przykładowego komunikatu, zakoduj go w base64 i sprawdź, czy uzyskasz taki sam wynik, najpierw uruchom go za pomocą eksploratora interfejsu API ... – Taifun