Отправка электронной почты из приложения c # Windows

#c#

#c#

Вопрос:

У меня есть приложение Windows c #, которое запущено на сервере, после его ежедневного запуска через планировщик задач в определенное время оно генерирует файл журнала, и теперь моя проблема могу ли я отправить электронное письмо на свой идентификатор office после завершения запуска приложения, в котором нет адреса from и его необходимо прикрепитьфайл журнала с электронной почтой.

 private void button1_Click(object sender, EventArgs e)
        { 
   MailMessage mail = new MailMessage("eg@king.co.uk", "user@hotmail.com");
        SmtpClient client = new SmtpClient();
        client.Port = 25;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;
        client.Host = @"100.100.0.1";- fake host
        mail.Subject = "this is a test email.";
        mail.Body = "this is my test email body";
        client.Send(mail);
}
  

Комментарии:

1. если вы используете Google, вам нужно включить значение SL = true и указать этот номер порта. Убедитесь, что также указаны учетные данные (т.Е. Ваше имя пользователя и пароль для учетной записи gmail).

2. Ваш вопрос неясен. Он отправляет почту при нажатии кнопки. Когда именно вы хотите отправлять почту на свой идентификатор office

3. Я не использую Google, я использую наш собственный smtp-адрес.

4. В вашем вопросе нигде нет вопросительной метки. В чем ваш вопрос?

5. @shruthi: Как вы думаете client.Host = "smtp.google.com"; , что это значит?

Ответ №1:

Много проблем в вашем коде и вопросе.

В вашем вопросе говорится: «Как мне отправить электронное письмо на мой идентификатор office». Неясно, что это значит. Вы имеете в виду, что у вас есть адрес электронной почты компании, например, shruti@mycompany.com и вы хотите отправить на него электронное письмо?

Должен быть адрес from . Адрес не обязательно должен существовать. Например, у вас будет адрес from of donotreply@mycompany.com .

Ваш вопрос включает в себя код для отправки электронной почты через серверы Gmail: client.Host = "smtp.google.com"; . Это заставляет всех, кто читает ваш вопрос, думать, что вы пытаетесь отправить электронное письмо через Google, к которому предъявляются особые требования. Если это не так, обновите свой вопрос, чтобы он был явным. Например, если вы используете сервер электронной почты, размещенный в компании, вы можете использовать smtp.mycompany.com .

Итак, если вопрос действительно заключается в том, как прикрепить текстовый файл к вашему электронному письму, вот как вы это сделаете:

 private void button1_Click(object sender, EventArgs e)
    { 
    MailMessage mail = new MailMessage("donotreply@yourcompany.com", "user@hotmail.com");
    SmtpClient client = new SmtpClient();
    client.Port = 25;
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.Host = "smtp.mycompany.com";
    mail.Subject = "this is a test email.";
    mail.Body = "this is my test email body";
    mail.Attachments.Add(new Attachment("log.txt"));
    client.Send(mail);  
    }
  

Обратите внимание, что я удалил UseDefaultCredentials=false , потому что вы не указали альтернативные учетные данные.

Ответ №2:

Если вам известен формат или имя сообщения ежедневного журнала, вы можете использовать следующий код после создания своего почтового сообщения:

 MailMessage mail = new MailMessage("you@yourcompany.com", "user@hotmail.com");
mail.Attachments.Add(new Attachment("filepath.log"));