Antwort auf eine E-Mail-Nachricht mit Gmail-API in c# asp.net
, so dass es Spuren aller Nachrichten machen. Got Lösungen für python
, php
, javascript
online, aber nicht für c#
. Ich kann Nachrichtendetails erhalten, weiß aber nicht, wie ich antworten soll.Antwort auf E-Mail in C#
Mein Code für Nachricht bekommen:
public void getmessage()
{
UserCredential credential;
using (var stream =
new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(
System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/gmail-dotnet-quickstart2.json");
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scope,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
Console.WriteLine("Credential file saved to: " + credPath);
}
var service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
var re = service.Users.Messages.List("me");
re.LabelIds = "INBOX";
re.Q = "from:emailaddress AND subject:subject";
var res = re.Execute();
if (res != null && res.Messages != null)
{
DataTable dt = new DataTable("msgs");
dt.Columns.Add("Date");
dt.Columns.Add("From");
dt.Columns.Add("Subject");
dt.Columns.Add("Body");
foreach (var email in res.Messages)
{
var emailInfoReq = service.Users.Messages.Get("me", email.Id);
var emailInfoResponse = emailInfoReq.Execute();
if (emailInfoResponse != null)
{
String from = "";
String date = "";
String subject = "";
String body = "";
//loop through the headers and get the fields we need...
foreach (var mParts in emailInfoResponse.Payload.Headers)
{
if (mParts.Name == "Date")
{
date = mParts.Value;
}
else if (mParts.Name == "From")
{
from = mParts.Value;
}
else if (mParts.Name == "Subject")
{
subject = mParts.Value;
}
//else if (mParts.Name == "Message-ID")
//{
// var abc = mParts.Value;
//}
if (date != "" && from != "")
{
if (emailInfoResponse.Payload.Parts == null && emailInfoResponse.Payload.Body != null)
body = DecodeBase64String(emailInfoResponse.Payload.Body.Data);
else
body = GetNestedBodyParts(emailInfoResponse.Payload.Parts, "");
}
}
DataRow row = dt.NewRow();
row[0] = date;
row[1] = from;
row[2] = subject;
row[3] = body;
dt.Rows.Add(row);
}
}
GridView1.DataSource = dt;
GridView1.DataBind();
}
}
Message-ID auch bekommen aber keine Referenzen und In-Bauen-To für die erste E-Mail. Kann einfache E-Mail-Nachricht senden mit MimeKit aber keine Ahnung über die Antwort.
Jede Hilfe wäre willkommen. Vielen Dank im Voraus!!
Sie können die Beispiele versuchen, in [SO Beitrag 1] (https://stackoverflow.com/questions/45371120/send-a-mail-as-a-reply-using-smtpclient) und [ SO post 2] (https://stackoverflow.com/questions/449887/sending-e-mail-using-c-sharp). Beide verwendeten den "SmtpClient", auf den Sie von [dieser Dokumentation per MSDN] verweisen können (http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage (VS.80) .aspx) . –
Danke, versuche es auf diese Weise, wenn es auch mit gmai API funktioniert – Preet