Godaddy 托管后无法发送 SMTP Gmail 邮件 - 他们是否解决了问题?

问题描述

我有一个 G Suite 电子邮件,它使用的是我在 GoDaddy 上拥有的域。我也在 GoDaddy 上托管。我没有工作区电子邮件。我已经设置了所有 MX 记录。也就是说,我的 Gmail、Contact Form 7 和 GoDaddy 无法使用 SMTP。

我的 Web Api 项目中有以下代码。但我仍然无法发送邮件。它在我的本地主机上工作正常,但在 Godadddy 中托管后就不行了。

 public async Task SendEmail(string email,string subject,string firstName,string contact)
{
    try
    {
        string message = BuildMessageBody(firstName,email,contact);

        using (var client = new SmtpClient())
        {
            var networkCredential = new NetworkCredential
            {
                UserName = _configuration["Email:Email"],Password = _configuration["Email:Password"]
            };

            client.UseDefaultCredentials = false;
            client.Credentials = networkCredential;
            client.Host = _configuration["Email:Host"];
            client.Port = int.Parse(_configuration["Email:Port"]);
            client.EnableSsl = true;

            using (var emailMessage = new MailMessage())
            {
                emailMessage.To.Add(new MailAddress(email));
                emailMessage.CC.Add(new MailAddress("my cc adddress"));
                emailMessage.From = new MailAddress(_configuration["Email:Email"]);
                emailMessage.Subject = subject;
                emailMessage.Body = message;
                emailMessage.IsBodyHtml = true;
                emailMessage.BodyEncoding = System.Text.Encoding.UTF8;
                emailMessage.SubjectEncoding = System.Text.Encoding.Default;
                emailMessage.ReplyToList.Add(new MailAddress(_configuration["Email:Email"]));

                client.SendCompleted += (s,e) => {
                    client.dispose();
                    emailMessage.dispose();
                };
                await client.SendMailAsync(emailMessage);
            }
        }
        await Task.CompletedTask;
    }
    catch (Exception ex)
    {
        _appLogger.CreateLog("SendEmail - " + ex.Message);
    }
}

我从godaddy网站上阅读

 Sending mail through other providers isn't allowed,so you'll need to use the following settings:

Port: 25
SMTP Authentication: False or none
SSL or Secure Connection: None
Server or Host: The relay server you need to use depends on the type of hosting and script

基于此,我像这样修改了我的代码

           string message = BuildMessageBody(value.toname,value.toemail,value.contact);

            using (var client = new SmtpClient())
            {
                var networkCredential = new NetworkCredential
                {
                    UserName = _configuration["Email:Email"],Password = _configuration["Email:Password"]
                };

                //client.Credentials = networkCredential;
                client.Host = "relay-hosting.secureserver.net";
                client.Port = 25;
              
                using (var emailMessage = new MailMessage())
                {
                    emailMessage.To.Add(new MailAddress(value.toemail));
                    emailMessage.CC.Add(new MailAddress(""));
                    emailMessage.From = new MailAddress(_configuration["Email:Email"]);
                    emailMessage.Subject = value.subject;
                    emailMessage.Body = message;
                    emailMessage.IsBodyHtml = true;
                    emailMessage.BodyEncoding = System.Text.Encoding.UTF8;
                    emailMessage.SubjectEncoding = System.Text.Encoding.Default;
                    emailMessage.ReplyToList.Add(new MailAddress(_configuration["Email:Email"]));

                    client.SendCompleted += (s,e) => {
                        client.dispose();
                        emailMessage.dispose();
                    };
                    await client.SendMailAsync(emailMessage);
                    await Task.Fromresult(0);

                    _appLogger.CreateLog("Passed Step 1 ");
                }

但仍然无法使用它发送邮件。有什么想法吗?当我在谷歌上搜索这个问题时,很久以前就报告了这个问题,但是否有任何解决方案,或者这个问题在 Godaddy 中仍然存在?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)