测试是否从C#中的外部系统发送电子邮件

时间:2011-09-07 15:31:21

标签: c# testing mocking email-integration

我们正在与外部邮件服务进行交互。为了能够进行有效的端到端测试,我们希望能够检查电子邮件是否已被有效接收。

我们可以选择收件人的电子邮件地址,但外部系统基本上是黑盒子。 能够在C#中获取和操纵该电子邮件的最有效策略是什么?

非常感谢。

Alberto

2 个答案:

答案 0 :(得分:0)

听起来你需要检查一个POP3邮箱。开箱即用,.NET框架不支持POP3,您需要第三方库,或者自己动手。我个人喜欢使用Dart的POP3库,尽管它是商业性的。

http://www.powertcp.com/ptmlnet.aspx

答案 1 :(得分:0)

我找到了这些库:

csharpmail的用法似乎很简单

//Receive mail
Pop3Client cl = new Pop3Client();
cl.ServerName = "your server name";
cl.UserName = "your name";
cl.Password = "pass";
cl.Ssl = false;
if (cl.Authenticate() == true)
{
    Int32 MailIndex = 1;
    Pop3Message mg = cl.GetMessage(MailIndex);
    String mailTo = mg.To;
    String mailCc = mg.Cc;
    String title = mg.Subject;
    String bodyText = mg.BodyText;
    //Save Image to your local hard disk
    foreach(Pop3Content ct in mg.Contents)
    {
        String filePath = "C:\MyFolder\" + ct.ContentDisposition.FileName;
        ct.DecodeData(filePath);
    }
}