【问题标题】:Not able to send email from my asp.net application to different domain无法从我的 asp.net 应用程序将电子邮件发送到不同的域
【发布时间】:2018-05-15 04:08:37
【问题描述】:

我开发了 asp.net 应用程序,它可以向我公司的域发送电子邮件。示例:ex@companydomain.com,但我无法将其发送到任何其他域,例如 ex@gmail.com 或 ex1@hotmail.com。我需要在 smtp 服务器或我的代码中进行更改吗?请告诉我。我对 .net 很陌生。下面是我使用的代码:

        MailMessage Msg = new MailMessage();
        var MailResult = false;

        var EmailUser = RFSvc.Users.Where(u => u.Email == email).SingleOrDefault();
        if (EmailUser != null)
        {

            Msg.From = new MailAddress("noreply@example.com", "Company name");
            Msg.Subject = "Password Recovery";
            Msg.IsBodyHtml = true;
            Msg.Body = "Your User Name is: " + EmailUser.Username + "<br /> Your password is: " + EmailUser.Password;
            Msg.To.Add(email);

            SmtpClient MailClient = new SmtpClient();

            MailClient.UseDefaultCredentials = false;
            MailClient.Host = "mail.example.com";
            MailClient.Port = 25;
            MailClient.Credentials = new NetworkCredential("username","password");
            //ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
            MailClient.EnableSsl = false;

            try
            {
                MailClient.Send(Msg);

                MailResult = true;
            }
            catch (Exception)
            {
            }
        }

【问题讨论】:

  • 勾选this 以在.net 中发送邮件。此外,gmail 电子邮件 ID 应类似于:example@gmail.com 而不是 example@ex.gmail.com。如果您可以发布代码,它将帮助其他人指导您。
  • @stom 谢谢你的回复。我已经对问题进行了必要的编辑。我也知道我的代码是正确的,我需要在 smtp 服务器中进行配置。你知道我需要做的所有配置吗?
  • MailClient.EnableSsl = false;更改为 MailClient.EnableSsl = True;

标签: asp.net-mvc smtp


【解决方案1】:

您好,您能提供一下您使用的是哪个端口吗?这样我就可以更清楚你卡在哪里了

Gmail SMTP 服务器名称是 smtp.gmail.com,使用发送邮件的端口是 587,并且还使用 NetworkCredential 进行基于密码的身份验证。

作为suggested by Trimantra Software Solution:

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");
            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());
        }

希望对你有帮助

【讨论】:

  • 请更改此设置 MailClient.EnableSsl = false;更改为 MailClient.EnableSsl = True;并尝试如果该端口不起作用,则默认为 587 并尝试调试代码
  • 嗨@ILYAS,代码工作正常。它将邮件发送到我的公司域。它只是不发送到其他域。我想我需要配置 SMTP 服务器。你知道我需要做什么配置吗?
  • 我也尝试过启用 SSL 并将端口更改为 587,它可以工作,但不会发送到其他域
  • 您是从您的域发送邮件吗?或谷歌请您可以从您的域配置您的邮件服务器,如果您使用 gmail 发送邮件,那么它 EnableSsl =true 并且如果您从私有域发送然后使 EnableSsl =False
  • 您好,我正在使用我的邮件服务器发送
【解决方案2】:

我可以从自定义域向 gmail.com 发送邮件,代码如下:

var fromAddress = new MailAddress("example@mydomain.com", "From Name");
var toAddress = new MailAddress("example@gmail.com", "To Name");
const string fromPassword = "password";
const string subject = "Subject";
const string body = "Body";            

MailMessage message = new MailMessage(fromAddress, toAddress);
message.Subject = subject;
message.Body = body;


var smtp = new SmtpClient
{
  Host = "smtp.mydomain.com",
  Port = 25,
  EnableSsl = true,
  DeliveryMethod = SmtpDeliveryMethod.Network,
  UseDefaultCredentials = false,
  Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
  Timeout = 20000
};            

smtp.Send(message);

注意:

如果它仍然不适合您,请联系您的域名注册商或邮件提供商并获取 smtp 邮件设置,或尝试更改端口 465 、 587 ,或尝试一次注释掉 SmtpClientclass 的单个属性检查它是否有效。

参考资料:

1.

2.

【讨论】:

  • 究竟是什么不起作用?你有什么错误吗?您的代码中是否有异常处理?
  • 嗨@stom 我尝试将邮件发送到我的公司域,它工作得很好。但只有当我尝试发送到谷歌等其他域时,雅虎才会给出这个例外:邮箱不可用。服务器响应为:5.7.1 无法中继
  • @SachinGotal ,如果您尝试从托管在IIS 的站点发送邮件,那么this 可能会对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 2022-01-11
  • 2016-02-23
  • 1970-01-01
  • 2015-03-26
  • 2017-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多