我正在寻找在我正在处理的应用程序中使用Gmail API的方法。但是,我不确定如何将他们的Java或Python示例更改为C#。现有样本的确切变化情况如何?
答案 0 :(得分:9)
以下是我能够使用documentation开始工作的内容。
class LSController:
def __init__(self, ssh_ip, ssh_user, ssh_pass, telnet_port):
server = SSHTunnelForwarder(
(ssh_ip, 22),
ssh_username=ssh_user,
ssh_password=ssh_pass,
remote_bind_address=('127.0.0.1', telnet_port)
)
server.start()
HOST = "localhost"
tn = telnetlib.Telnet(HOST,server.local_bind_port)
self.tn = tn
#get initial info
tn.read_until('')
tn.write('request.all\n')
tn.read_until('END')
def send_command(self, command):
self.tn.write(command + '\n')
return self.tn.read_until('END')
@Eric Gmail Api缺乏,因为它要求消费者必须经历几次舞蹈才能做一些相对基本的事情。对于.Net,它应该像填充Message对象(使用Subject,From,To,Body等)一样简单,并将该对象传递给处理编码的Send函数。
至少,Api文档应该提供一个完整的工作示例,不需要像MimeKit或AE.Net.Mail这样的第三方库。
注意:如果您收到电子邮件退回问题,可能是由于未设置ReplyToList字段。请参阅:MimeKit
答案 1 :(得分:7)
这是一个棘手的问题需要解决,但我最终得到了它。我使用NuGet包AE.Net.Mail
来获取RFC 2822位。
using System.IO;
using System.Net.Mail;
using Google.Apis.Gmail.v1;
using Google.Apis.Gmail.v1.Data;
public class TestEmail {
public void SendIt() {
var msg = new AE.Net.Mail.MailMessage {
Subject = "Your Subject",
Body = "Hello, World, from Gmail API!",
From = new MailAddress("[you]@gmail.com")
};
msg.To.Add(new MailAddress("yourbuddy@gmail.com"));
msg.ReplyTo.Add(msg.From); // Bounces without this!!
var msgStr = new StringWriter();
msg.Save(msgStr);
var gmail = new GmailService(MyOwnGoogleOAuthInitializer);
var result = gmail.Users.Messages.Send(new Message {
Raw = Base64UrlEncode(msgStr.ToString())
}, "me").Execute();
Console.WriteLine("Message ID {0} sent.", result.Id);
}
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("=", "");
}
}
相同的代码,稍加进一步的分析和原因在这里发布: http://jason.pettys.name/2014/10/27/sending-email-with-the-gmail-api-in-net-c/
答案 2 :(得分:0)
似乎这并不是Gmail API的真正问题。您应该寻找的是" c#创建电子邮件" (可能会添加" RFC 2822"因为这是定义这些电子邮件格式的RFC)。一旦你有了这样一个有效的"电子邮件消息" (可以与SMTP或IMAP一起使用的真实,完整的电子邮件内容等)然后将其与Gmail API一起使用应该非常简单。