.net 如何将smtp邮件发送到特定的IP和端口?

.net 如何将smtp邮件发送到特定的IP和端口?,.net,smtp,.net,Smtp,我想测试一个自行开发的服务,它侦听特定端口(如12345)并解析smtp消息部分(如从、到、正文) 我想为我的监听器制作一个测试工具,但在创建通过特定端口号到特定ip(我的监听器正在运行的ip/端口)生成smtp消息时遇到问题 我试图通过.net控制台应用发送邮件,但失败了,因为我被迫指定了一个smtp服务器来发送邮件,而由于安全原因,我无法使用该服务器 如果我记得正确,我应该能够telnet或以某种方式使用命令行向ip和端口发送电子邮件。基本上,只要我能以某种方式向我的听众发送邮件消息,我就不

我想测试一个自行开发的服务,它侦听特定端口(如12345)并解析smtp消息部分(如从、到、正文)

我想为我的监听器制作一个测试工具,但在创建通过特定端口号到特定ip(我的监听器正在运行的ip/端口)生成smtp消息时遇到问题

我试图通过.net控制台应用发送邮件,但失败了,因为我被迫指定了一个smtp服务器来发送邮件,而由于安全原因,我无法使用该服务器

如果我记得正确,我应该能够telnet或以某种方式使用命令行向ip和端口发送电子邮件。基本上,只要我能以某种方式向我的听众发送邮件消息,我就不在乎这是怎么做到的

我的发送应用程序:

int count = 3;
for (int i = 1; i <= count; i++)
{

    MailMessage message = new MailMessage("sender@ml.com", "recep@ml.com");
    SmtpClient client = new SmtpClient(IPAddress.Loopback.ToString(), 8000);
    message.Body = "test mail #" + i.ToString();
    client.Send(message);

    Console.WriteLine("mail " + i.ToString() + " Sent");
    Console.ReadLine();
}
Console.WriteLine("DONE!");

强制指定的SMTP地址和端口是要测试的应用程序的地址和端口

在大多数情况下,通过SMTP发送的电子邮件在服务器之间进行中继,无需任何修改,并且使用相同的传输协议。因此,您是直接向应用程序还是中继服务器(如ISP的电子邮件服务器)发送邮件对发件人来说并不重要。它看不出有什么不同

不同之处在于,您的ISP服务器可能无法将电子邮件中继到您的应用程序,因为它需要DNS中的MX记录和正确的防火墙/端口转发到您的应用程序

您甚至可以在Outlook中配置SMTP配置文件以直接传递到应用程序。只需将应用程序ip和端口指定为SMTP服务器

要使用telnet:

telnet ip port helo me mail from: <some@domain.com> rcpt to: <some@domain.com> data Subject: Ho Ho Ho From: Santa Hello! . telnet ip端口 你好 邮寄地址: rcpt至: 数据 主题:呵呵呵呵 发件人:圣诞老人 你好 . 服务器将确认您键入的每一行,通常是英文文本


请注意标题和正文之间的空行,以及最后一行结束消息上的单点。

一个用于从命令行建立TCP连接的优秀开源程序称为“Netcat”,但它不起作用。我收到一个“无法打开到主机的连接…”错误,然后您没有在端口上侦听。尝试
netstat-anb
并查看程序是否正在侦听端口。检查防火墙设置。Telnet肯定能工作。语法:
telnet mail.messaging.microsoft.com 25
。希望这有帮助。:) telnet ip port helo me mail from: <some@domain.com> rcpt to: <some@domain.com> data Subject: Ho Ho Ho From: Santa Hello! .