标签: mailkit

我可以使用MailKit通过电子邮件发送文件吗?

作为标题,MailKit是否支持发送文件?
如果是,我该怎么办?

c# email-attachments mailkit mimekit

29
推荐指数
2
解决办法
2万
查看次数

如何通过Mimekit/Mailkit发送HTML消息

BodyBuilder bodyBuilder = new BodyBuilder();
messageContent.Body = "<b>This is a test mail</b>";
bodyBuilder.HtmlBody = messageContent.Body;
Run Code Online (Sandbox Code Playgroud)

我试图将我的身体嵌入到健美运动员中,但是当我收到电子邮件时,它返回了一个空体.我有一个例外,如果正文是空的,它会抛出一个参数.

c# mailkit mimekit

28
推荐指数
3
解决办法
2万
查看次数

如何在MailKit中将邮件标记为已读

我使用MailKit从GMail帐户中读取一些消息.工作得很好,但是当我的应用程序读取了一条消息时,我想将消息标记为已读,并将该状态保存到GMail.MailKit可以实现吗?我还没有发现任何相关信息.

最好的问候René

c# mailkit

21
推荐指数
1
解决办法
6642
查看次数

如何使用MailKit发送电子邮件?

根据新的谷歌政治https://googleonlinesecurity.blogspot.de/2014/04/new-security-measures-will-affect-older.html我无法发送电子邮件.对于不使用OAuth 2.0的应用程序,谷歌会考虑"安全性较低的应用程序".

我想使用MailKit来解决这个问题

var message = new MimeMessage();

message.From.Add(new MailboxAddress("Joey Tribbiani", "noreply@localhost.com"));
message.To.Add(new MailboxAddress("Mrs. Chanandler Bong", "mymail@gmail.com"));
message.Subject = "How you doin'?";
message.Body = new TextPart("plain"){ Text = @"Hey" };

using (var client = new SmtpClient())
{
   client.Connect("smtp.gmail.com", 587);

   ////Note: only needed if the SMTP server requires authentication
   client.Authenticate("mymail@gmail.com", "mypassword");

   client.Send(message);
   client.Disconnect(true);
}
Run Code Online (Sandbox Code Playgroud)

但我有 An exception of type 'MailKit.Security.AuthenticationException' occurred in MailKit.dll but was not handled in user code.Additional information: Authentication failed.

我不想更改我的安全设置.因为我希望一切都安全.这就是我开始使用MailKit而不是System.Net.Mail的原因

我该如何解决?

c# gmail mailkit

18
推荐指数
2
解决办法
4万
查看次数

MailKit保存附件

我正在尝试从邮件中保存附件

foreach(MimeKit.MimeEntity at message.Attachments) 
{
    at.WriteTo("nameFile");
}
Run Code Online (Sandbox Code Playgroud)

文件保存,但是当我打开时我得到错误文件已损坏或太大此文件的大小为88 kb,但文件大小应等于55 kb.

我认为在所有录制的消息文件中.

我如何只记录附件?

MailKit v1.2.0.0 MimeKit 1.2.0.0

.net c# mailkit mimekit

16
推荐指数
1
解决办法
1万
查看次数

可以通过Office365共享邮箱发送SMTP邮件吗?

我们正在考虑迁移到 O365;然而,我们开发的软件使用我们当前的 Exchange 服务器在发生错误时向外部用户和支持箱发送电子邮件。

我一直在对此进行测试,以确保我们现有的代码将继续与 O365 一起使用,但到目前为止,我还没有取得很大的成功。

我曾尝试使用 .Net 的 SmtpClient 以及 MailKit 的 SmtpClient,但似乎都不起作用。我不断收到错误(这是来自 MailKit 的错误——.Net 错误是类似的)

“AuthenticationInvalidCredentials:5.7.3 身份验证不成功 [*.prod.exchangelabs.com]”

我可以使用代码中的凭据登录 OWA - 所以我知道凭据是有效的。不能通过 O356 发送电子邮件吗?Exchange 中是否需要进行任何特殊配置才能实现这一点?

这是我迄今为止尝试过的:

邮件套件

var msg = new MimeMessage();
msg.From.Add(new MailboxAddress("Support","support@mydomain.com"));
msg.To.Add(new MailboxAddress("Me","me@mydomain.com"));
msg.To.Add(new MailboxAddress("External User","euser@externaldomain.com"));
msg.Subject = "Test";
msg.Body = new TextPart("plain"){
   Text = "Here is a message for you"
};
using(var client = new SmtpClient()){
    client.ServerCertificateValidationCallback = (s,c,h,e) => true;
    client.AuthenticationMechanisms.Remove("XOAUTH2"); //Not sure what this does.  Have tried with and without
    client.Connect("smtp.office365.com", …
Run Code Online (Sandbox Code Playgroud)

.net c# smtp office365 mailkit

15
推荐指数
1
解决办法
6435
查看次数

MailKit:使用 Client.Disconnect(...) 的最佳实践是什么

我最近在我们的项目中使用了 Mailkit lib,以替换 .NET SmtpClient。我们有 2 个使用 SmtpClient 发送电子邮件的业务案例。在一种情况下,我们使用 SmtpClient 在单独的进程中发送排队的电子邮件,而在另一种情况下,我们立即发送电子邮件。在实现时我注意到我们必须调用 Client 实例的 Disconnect 方法。 文档中不确定也不清楚调用此方法的最佳方法是什么。所以我的问题是,使用这种方法的最佳实践是什么?每条消息调用 mailClient.Disconnect(true) 还是 mailClient.Disconnect(false)? mailClient.Disconnect(...);

出于兴趣,如果我在 using 块中使用客户端,是否需要在发送消息后显式调用 Disconnect(...) ?我认为它在执行 Dispose() 时隐式调用断开连接。 using (var mailClient = new SmtpClient()) { mailClient.Connect(...); mailClient.AuthenticationMechanisms.Remove("XOAUTH2"); mailClient.Authenticate(...); mailClient.Send(message); mailClient.Disconnect(false); }

感谢您在这方面的反馈。

mailkit

13
推荐指数
1
解决办法
3082
查看次数

2022 年 5 月 30 日之后如何通过 Google 使用 MailKit?

到目前为止,我很高兴使用类似于以下的方法连接到我的 Gmail 帐户:

\n
public async Task<IEnumerable<MimeMessage>> GetMessagesAsync()\n{\n    using var imapClient = new MailKit.Net.Imap.ImapClient();\n    var secureSocketOptions = SecureSocketOptions.Auto;\n    if (useSsl) secureSocketOptions = SecureSocketOptions.SslOnConnect;\n    await imapClient.ConnectAsync(host, port, secureSocketOptions);\n\n    await imapClient.AuthenticateAsync(login, password);\n\n    await imapClient.Inbox.OpenAsync(FolderAccess.ReadOnly);\n\n    var uids = await imapClient.Inbox.SearchAsync(SearchQuery.All);\n\n    var messages = new List<MimeMessage>();\n    foreach (var uid in uids)\n        messages.Add(await imapClient.Inbox.GetMessageAsync(uid));\n\n    imapClient.Disconnect(true);\n\n    return messages;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

自 2022 年 5 月 30 日起,这不再可能,因为对“不太安全的应用程序”的支持已被禁用

\n
\n

为了确保您帐户的安全,从 2022 年 5 月 30 日起,\xe2\x80\x8b\xe2\x80\x8bGoogle 不再支持使用要求您仅使用您的帐户登录 Google 帐户的第三方应用或设备。用户名和密码。

\n
\n

现在如何将 Mailkit 与 Gmail …

.net gmail imap mailkit

12
推荐指数
1
解决办法
8251
查看次数

在ASP .NET MVC 6项目中使用System.Net.Mail

我在ASP NET 5项目中创建一个简单的模拟邮件发件人时遇到了麻烦.

这里的方法:

    public static Task SendMail(string Email, string Subject, string Body)
    {
        SmtpClient client = new SmtpClient();
        client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
        client.PickupDirectoryLocation = "C:\\TMP";

        MailAddress from = new MailAddress("jane@contoso.com", "Jane " + (char)0xD8 + " Clayton", System.Text.Encoding.UTF8);
        MailAddress to = new MailAddress(Email);

        MailMessage message = new MailMessage(from, to);
        message.Body = Body;
        message.BodyEncoding = System.Text.Encoding.UTF8;
        message.Subject = Subject;
        message.SubjectEncoding = System.Text.Encoding.UTF8;

        client.Send(message);
        message.Dispose();

        return Task.FromResult(0);
    }
Run Code Online (Sandbox Code Playgroud)

我已经包含了依赖项'System.Net.Mail',但工具提示说该库在DNX 4.5.1中可用,但在DNX Core 5.0中不可用,并且项目将无法编译.

在我的project.json中有:

"frameworks": {
    "dnx451": { },
    "dnxcore50": { }
}
Run Code Online (Sandbox Code Playgroud)

.net system.net.mail smtpclient asp.net-core-mvc mailkit

11
推荐指数
2
解决办法
4673
查看次数

如何将 MailKit 与 IMAP for Exchange 结合使用,将 OAuth2 用于守护程序/非交互式应用程序

我有一个守护程序,可以读取电子邮件地址的收件箱并对电子邮件执行操作。我正在使用 MailKit 通过 IMAP 连接到交换服务器,但 Microsoft 已关闭我们的基本身份验证(凌晨 4 点,没有警告......)。所以我需要一种新的方式来连接到我的邮箱。

使用图表需要对我的应用程序进行重大重写。我打算这样做,但与此同时,我需要一个中间解决方案来保留 MailKit。

imap exchange-server azure oauth-2.0 mailkit

11
推荐指数
1
解决办法
1万
查看次数