邮箱不可用。服务器的响应是:在此位置没有此域名。

4
我将使用以下基本代码:

我正在使用以下基本代码:

System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();

msg.to.add("someone@hotmail.com");
msg.to.add("someone@gmail.com");
msg.to.add("someone@myDomain.com");

msg.From = new MailAddress("me@myDomain.com", "myDomain", System.Text.Encoding.UTF8);
msg.Subject = "subject";
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = "body";
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = false;

//Add the Creddentials
SmtpClient client = new SmtpClient();
client.Host = "192.168.0.24"; 
client.Credentials = new System.Net.NetworkCredential("me@myDomain.com", "password");
client.Port = 25;

try
{
   client.Send(msg);
}
catch (System.Net.Mail.SmtpException ex)
{
    sw.WriteLine(string.Format("ERROR MAIL: {0}. Inner exception: {1}", ex.Message,  ex.InnerException.Message));
}

问题是邮件只发送到我的域名地址(someone@mydomain.com),我收到以下两个其他地址的异常:

System.Net.Mail.SmtpFailedRecipientException:邮箱不可用。服务器响应为:此位置不存在此类域

我怀疑这与某些阻止我的SMTP客户端有关,但不确定如何解决。 有什么想法吗?谢谢!


唯一看起来不寻常的是 Host - 它看起来像一个路由器 IP 地址。Host 应该是用于 SMTP 事务的主机的名称或 IP 地址。你能使用 mail.myDomain.com 进行测试吗? - ron tornambe
2个回答

4

Ron是正确的,只需使用587端口,它将按您希望的方式工作。

检查这段代码,看看它是否可以正常工作:

using System;
using System.Windows.Forms;
using System.Net.Mail;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

                mail.From = new MailAddress("your_email_address@gmail.com");
                mail.To.Add("to_address@mfc.ae");
                mail.Subject = "Test Mail";
                mail.Body = "This is for testing SMTP mail from GMAIL";

                SmtpServer.Port = 587;
                SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
                SmtpServer.EnableSsl = true;

                SmtpServer.Send(mail);
                MessageBox.Show("mail Send");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
    }
}

你能把你的项目压缩包发给我吗?这样我就可以看一下并解决问题了。 - Vipin Nair
嗨Vipin,很抱歉我不能发送整个项目压缩包。此外,这个端口不起作用,这次出现了不同的异常(根本无法连接...)。还有一件事 - 我尝试从另一个服务器上运行相同的进程,使用旧端口(25),它可以正常工作。有什么想法吗? - Urik

2

嗨Ron和@Vipin,感谢您的回复,但不幸的是,它并没有解决问题。我仍然收到相同的错误。还有其他想法吗? - Urik
尝试添加到SmtpClent:client.DefaultCredentials = false; - ron tornambe
嗨,Ron,还是不行。我尝试了使用client.DefaultCredentials = false和两个端口,同时也启用了EnableSsl = true。 - Urik
@rontornambe,您发布的网址返回404未找到。 - dario

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接