2017-11-06 14 views
-1

라이브러리 iCal.NET을 사용하여 약속을 사용자 전자 메일로 보내는 방법에 대한 많은 자습서를 따라 왔지만 aspnet Core에서 작동하지 않는 것으로 보입니다. erro : 네임 스페이스 "이벤트"를 찾을 수 없습니다. 라이브러리 여기 http://prntscr.com/h6vvcviCal.NET .NET 코어 - 네임 스페이스 '이벤트'를 찾을 수 없습니다.

: https://github.com/rianjs/ical.net

는 또 다른 방법이있는 오류에

// creating the event 

      var now = DateTime.Now; 
      var later = now.AddHours(1); 

      var e = new Event 
      { 
       DtStart = new CalDateTime(now), 
       DtEnd = new CalDateTime(later)     
      }; 

      var calendar = new Calendar(); 
      calendar.Events.Add(e); 

      var serializer = new CalendarSerializer(new SerializationContext()); 
      var serializedCalendar = serializer.SerializeToString(calendar); 

봐 :

나는 울부 짖는 소리처럼 Google 캘린더에 약속을 보낼 수있는 방법을 쓰기 시도 사용자에게 자신의 Google 캘린더에 약속을 추가 할 수 있도록 간단한 전자 메일을 보냅니 까?

답변

0

마지막으로 나는 닷넷 코어의 iCall.Net 라이브러리로 내 문제의 해결책을 발견했다. 내가 말했듯이, 나는 도서관 데모에 대한 튜토리얼을 따라 갔지만, 이벤트 객체는 발견되지 않았다.

나는 다른 방법으로 이벤트 객체를 작성하고, 라이브러리는 다음과 같은 설정, 완벽한 일 :

public void SendMail(string assunto, string email, string descricao, DateTime dataInicio, DateTime dataFim) 
     { 
      var iCal = new Calendar();   
      var iEvent = iCal.Create<CalendarEvent>(); 
      iEvent.Summary = assunto; 
      iEvent.Start = new CalDateTime(dataInicio); 
      iEvent.End = new CalDateTime(dataFim); 
      iEvent.Description = descricao; 
      iEvent.Status = EventStatus.Confirmed; 

      iCal.Events.Add(iEvent); 
      var serializer = new CalendarSerializer(); 
      var serializedCalendar = serializer.SerializeToString(iCal); 
      var bytesCalendar = Encoding.UTF8.GetBytes(serializedCalendar); 

      var message = new MimeMessage();   
      message.From.Add(new MailboxAddress("","[email protected]")); 
      message.To.Add(new MailboxAddress("", email)); 
      message.Subject = "assunto"; 

      var builder = new BodyBuilder();   
      builder.TextBody = @"Body text"; 
      builder.Attachments.Add("evento.ics", bytesCalendar, ContentType.Parse("text/calendar")); 
      message.Body = builder.ToMessageBody();   

      using (var client = new SmtpClient()) 
      { 
       client.Connect("smtp.gmail.com", 587); 
       client.Authenticate("email", "password"); 
       client.Send(message); 
       client.Disconnect(true); 
      } 
     } 
    } 
}