Rauf
Rauf

Reputation: 12852

Send Email from Windows Service: Transaction failed. the server response was 5.7.1 client host rejected access denied

The below code is working fine from Windows Form, but not working from Windows Services. The service is running on Windows XP.

I have tried changing the log on user, but did not work.

Error: Transaction failed. the server response was 5.7.1 client host rejected access denied

private void SendEmailToHO()
{
    try
    {
        int mailSentSuccessfully = 0;

        MailAddress to = new MailAddress(mailTo);
        MailAddress from = new MailAddress(mailFrom);

        using (MailMessage mail = new MailMessage(from.Address, to.Address))
        {

            int attachmentCount = 0;

            try
            {
                foreach (string fileName in fileEntries)
                {
                    Attachment attachment = new Attachment(fileName);
                    mail.Attachments.Add(attachment);
                    attachmentCount++;
                }

                SmtpClient client = new SmtpClient(mailHost, port);
                if (enableSSL == "Y")
                {
                    client.EnableSsl = true;
                }
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                client.UseDefaultCredentials = false;
                client.Credentials = new System.Net.NetworkCredential(mailUser, mailPassword);

                mail.Subject = "Email Subject " + clientID;
                mail.Body = "Attached please find the files: " + clientIDTitle;

                if (attachmentCount > 0)
                {
                    //
                    client.Send(mail);

                    //if no error, this code will work.
                    mailSentSuccessfully = 1;

                    new MyApp.LogWriter("Sent mail to " + to.Address + ", \nAttachment count = " + attachmentCount);
                }
                else
                {
                    new MyApp.LogWriter("Attachment count = " + attachmentCount);
                }
            }
            catch (Exception ex)
            {
                new MyApp.LogWriter("Send mail failed. Cause: " + ex.Message
                                          + "\n Inner Exception: " + ex.InnerException);
            }
        }
    }
    catch (System.Exception ex)
    {
        new BTCClient.LogWriter("Email Error '" +
                           ex.Message + "'");
    }
}

Upvotes: 1

Views: 15670

Answers (1)

user11441124
user11441124

Reputation: 1

I was facing the same issue, To resolve this issue you need to contact your email server's service provider and tell them to give access to your server IP.

Upvotes: 0

Related Questions