Код: Выделить всё
private static void SendEmail()
{
ClientSecrets clientSecrets = new ClientSecrets
{
ClientId = ClientId,
ClientSecret = ClientSecret
};
TokenResponse token = new TokenResponse
{
AccessToken = "",
RefreshToken = _espApiEndpoint.RefreshToken
};
IAuthorizationCodeFlow flow =
new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
{
ClientSecrets = clientSecrets,
Scopes = new string[] { GmailService.Scope.GmailSend }
});
UserCredential credential = new UserCredential(flow, "me", token);
BaseClientService.Initializer intializer = new BaseClientService.Initializer
{
ApplicationName = "GmailEspApiClient",
HttpClientInitializer = credential
};
var gmail = new GmailService(intializer);
string message = @"From: Xxx
Date: Thu, 14 Mar 2024 09:59:20 -0700
Subject: Gmail EE est
Message-Id:
Reply-To: xxx
To: Dan
X-EE-RunId: xxx
List-Unsubscribe: ,
List-Unsubscribe-Post: List-Unsubscribe=One-Click
X-Test-Header: TestHeader
X-Testing: Testee
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Hello from Gmail[/b]
";
using MemoryStream memoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(message));
MimeMessage mimeMessage = await MimeMessage.LoadAsync(memoryStream);
string privateKey = ""; // Your private key
byte[] byteArray = Encoding.UTF8.GetBytes(privateKey);
using MemoryStream memory = new MemoryStream(byteArray);
string domain = "xxx"; // Your Domain
string selector = "xxx"; // Selector
DkimSigner signer = new DkimSigner(memory, domain, selector)
{
HeaderCanonicalizationAlgorithm = DkimCanonicalizationAlgorithm.Simple,
BodyCanonicalizationAlgorithm = DkimCanonicalizationAlgorithm.Simple,
QueryMethod = "dns/txt",
};
mimeMessage.Prepare(EncodingConstraint.SevenBit);
signer.Sign(mimeMessage, new HeaderId[] { HeaderId.From });
Message finalmessage = new Message();
finalmessage.Raw = Base64UrlEncode(mimeMessage.ToString());
var result = await gmail.Users.Messages.Send(finalmessage, "me").ExecuteAsync();
}
private static string Base64UrlEncode(string input)
{
var inputBytes = System.Text.Encoding.UTF8.GetBytes(input);;
// Special "url-safe" base64 encode.
return Convert.ToBase64String(inputBytes)
.Replace('+', '-')
.Replace('/', '_')
.Replace("=", "");
}
Сообщите нам свое мнение.
Проблема ранее открыт с помощью Google https://github.com/googleapis/google-ap ... ssues/2701
Подробнее здесь: https://stackoverflow.com/questions/781 ... ending-via