首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在RFC822中发送c#文件

如何在RFC822中发送c#文件
EN

Stack Overflow用户
提问于 2014-09-25 10:24:53
回答 3查看 1.3K关注 0票数 1

我正在尝试转换一些Python代码,以便在.Net网站中使用。代码检索以RFC822格式存储的消息,并再次使用以下方法将消息发送到SMTP服务器:

代码语言:javascript
复制
mail from: blah blah
rcpt to: blah blah
data
<send the text from the RFC822 file here>
.

因此,不需要解析RFC822文件(幸运的是!)。在Python中,这只是:

代码语言:javascript
复制
smtp = smtplib.SMTP(_SMTPSERVER)
smtp.sendmail(_FROMADDR, recipient, msg)

其中文件已被读入变量msg中。在C#中有什么简单的方法可以做到这一点吗?

内置的C# SMTP对象没有提供这样的方法,或者至少我还没有找到一种方法。它们似乎是基于建立一个MailMessage的原则,分别提供地址、主题和正文。SmtpClient有一个Send(string, string, string, string)方法,但是这同样需要一个独立的主题和主体,所以我想它为您构造了RFC822格式的消息。

如果必要的话,我可以写我自己的类来发送邮件。这是一个如此简单的要求,不会花很长时间。但是,如果有一种方法使用标准库,那么它们可能比我的代码更少buggy。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-25 10:27:54

你说得对,内置的东西不能解决这个问题。

我的建议是编写一些代码,使用TcpClient和StreamReader / StreamWriter与SMTP服务器交互。它不需要超过50行代码。

票数 1
EN

Stack Overflow用户

发布于 2014-09-27 00:45:43

我建议使用MimeKit解析消息文件,然后使用MailKit通过SMTP发送。MailKit基于MimeKit,因此它们很好地结合在一起,MailKit的SmtpClient优于System.Net.Mail的实现。

解析消息非常简单,如下所示:

代码语言:javascript
复制
var message = MimeMessage.Load (fileName);

发送消息就像以下几行一样简单:

代码语言:javascript
复制
using (var client = new SmtpClient ()) {
    client.Connect ("smtp.gmail.com", 465, true);
    client.Authenticate ("username", "password");
    client.Send (message);
    client.Disconnect (true);
}
票数 4
EN

Stack Overflow用户

发布于 2020-03-04 17:03:06

这很容易做到,您只需从nuget安装MailKit和MimeKit即可。请注意,如果您不需要身份验证,将"useSsl“设置为false是不够的,它不起作用。您需要设置MailKit.Security.SecureSocketOptions.None

代码语言:javascript
复制
 var message = MimeMessage.Load("pathToEml");
                using (var client = new MailKit.Net.Smtp.SmtpClient())
                {
                    client.Connect("smtp.yourserver.yourdomain", 25, MailKit.Security.SecureSocketOptions.None);  //set last param to true for authentication
                    //client.Authenticate("username", "password");
                    client.Send(message);
                    client.Disconnect(true);
                }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26036195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档