indy를 통해 전자 메일에 icalendar 코드를 포함시키고 text/calendar 콘텐츠 형식으로 보내려고했지만 인코딩이 중단되었습니다 첨부 파일로 추가 할 때 전자 메일의 첨부 파일로 도착하고 다른 달력 요청으로 묻지 않습니다. 인디를 통해 캘린더 요청을하는 방법에 대한 예제 코드가 있습니까? 당신이 ContentType:='text/calendar'
에 속성을 설정하면캘린더 요청 (콘텐츠 유형 : 텍스트/캘린더)이 포함 된 전자 메일을 보내는 방법
5
A
답변
4
이 RRUZ의 예에 대한 대안 : 이메일 J를 검색 할 때
program SendMailWithCalendarRequest;
{$APPTYPE CONSOLE}
uses
IdSMTP,
Classes,
DateUtils,
IdMessage,
SysUtils;
procedure SendCalendarRequest;
var
SMTP : TIdSMTP;
MailMessage : TIdMessage;
begin
SMTP:= TIdSMTP.Create(nil);
MailMessage := TIdMessage.Create(nil);
try
SMTP.Host := 'smtp.mailserver.com';
SMTP.Port := 25;
SMTP.Username := 'the account';
SMTP.Password := 'the password';
SMTP.AuthType := satDefault;
MailMessage.From.Address := '[email protected]';
MailMessage.Recipients.EMailAddresses := 'the Recipient';
MailMessage.Subject := 'Send calendar';
MailMessage.Body.Add('BEGIN:VCALENDAR');
MailMessage.Body.Add('VERSION:1.0');
MailMessage.Body.Add('BEGIN:VEVENT');
MailMessage.Body.Add('ORGANIZER:MAILTO:'+SenderMail);
MailMessage.Body.Add('DTStart:'+FormatDateTime('YYYY-DD-DD',Now));
MailMessage.Body.Add('DTEnd:'+FormatDateTime('YYYY-DD-DD', Tomorrow));
MailMessage.Body.Add('Location;ENCODING=QUOTED-PRINTABLE: My home');
MailMessage.Body.Add('UID:'+FormatDateTime('YYYY-DD-DD',Now)+FormatDateTime('YYYY-DD-DD', Tomorrow));
MailMessage.Body.Add('SUMMARY:Appointment Reminder');
MailMessage.Body.Add('DESCRIPTION:Test message');
MailMessage.Body.Add('PRIORITY:5');
MailMessage.Body.Add('END:VEVENT');
MailMessage.Body.Add('END:VCALENDAR');
MailMessage.ContentType := 'text/calendar';
SMTP.Connect;
try
try
SMTP.Send(MailMessage) ;
Writeln('OK')
except on E:Exception do
Writeln(0, 'ERROR: ' + E.Message) ;
end;
finally
SMTP.Disconnect;
end;
finally
SMTP.Free;
MailMessage.Free;
end;
end;
begin
try
SendCalendarRequest;
readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
4
@ 데이비드, 이메일 클라이언트가 일정 요청으로 첨부 파일을 인식,이 샘플 코드를 참조 iCalendar format Specification
이 링크를 참조
program SendMailWithCalendarRequest;
{$APPTYPE CONSOLE}
uses
IdSMTP,
Classes,
DateUtils,
IdAttachmentFile,
IdMessage,
SysUtils;
procedure SendCalendarRequest;
var
SMTP : TIdSMTP;
MailMessage : TIdMessage;
Calendar : TStrings;
CalendarFile: String;
Attachment : TIdAttachmentFile;
SenderMail : String;
begin
SenderMail:='[email protected]';
CalendarFile:=ExtractFilePath(ParamStr(0))+'\appmnt.vcs';
Calendar:=TStringList.Create;
try
Calendar.Add('BEGIN:VCALENDAR');
Calendar.Add('VERSION:1.0');
Calendar.Add('BEGIN:VEVENT');
Calendar.Add('ORGANIZER:MAILTO:'+SenderMail);
Calendar.Add('DTStart:'+FormatDateTime('YYYY-DD-DD',Now));
Calendar.Add('DTEnd:'+FormatDateTime('YYYY-DD-DD', Tomorrow));
Calendar.Add('Location;ENCODING=QUOTED-PRINTABLE: My home');
Calendar.Add('UID:'+FormatDateTime('YYYY-DD-DD',Now)+FormatDateTime('YYYY-DD-DD',Tomorrow));
Calendar.Add('SUMMARY:Appointment Reminder');
Calendar.Add('DESCRIPTION:Test message');
Calendar.Add('PRIORITY:5');
Calendar.Add('END:VEVENT');
Calendar.Add('END:VCALENDAR');
Calendar.SaveToFile(CalendarFile);
finally
Calendar.Free;
end;
SMTP:= TIdSMTP.Create(nil);
MailMessage := TIdMessage.Create(nil);
try
SMTP.Host := 'smtp.mailserver.com';
SMTP.Port := 25;
SMTP.Username:='the account';
SMTP.Password:='the password';
SMTP.AuthType:=satDefault;
MailMessage.From.Address := SenderMail;
MailMessage.Recipients.EMailAddresses := 'the Recipient';
MailMessage.Subject := 'Send calendar';
MailMessage.Body.Text := '';
Attachment:=TIdAttachmentFile.Create(MailMessage.MessageParts, CalendarFile) ;
Attachment.ContentType:='text/calendar';//set the content type to text/calendar
try
try
SMTP.Connect;
SMTP.Send(MailMessage) ;
Writeln('OK')
except on E:Exception do
Writeln(0, 'ERROR: ' + E.Message) ;
end;
finally
if SMTP.Connected then SMTP.Disconnect;
end;
finally
SMTP.Free;
MailMessage.Free;
end;
end;
begin
try
SendCalendarRequest;
readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
(델파이 2010 엉 테스트) 여기
관련 문제
- 1. BlackBerry - 응용 프로그램의 이미지가 포함 된 전자 메일을 보내는 방법?
- 2. HTML 전자 메일을 보내는 방법
- 3. 캘린더 및 콘텐츠 유형
- 4. 웹 응용 프로그램에서 전자 메일을 보내는 방법
- 5. Python - utf-8 전자 메일을 보내는 방법?
- 6. C++을 사용하여 전자 메일을 보내는 방법
- 7. Windows의 명령 줄에서 전자 메일을 보내는 방법
- 8. MFMailComposeViewcontroller를 사용하지 않고 전자 메일을 보내는 방법
- 9. 응용 프로그램에서 SMS/전자 메일을 보내는 방법
- 10. 레일 스타일의 HTML 전자 메일을 보내는 방법
- 11. 배 전자 메일을 사용하여 디지털 서명 된 전자 메일을 보내는 방법
- 12. 그림이 포함 된 HTML 메일을 보내는 올바른 방법 : 서버 또는 포함 된 이미지를 사용합니까?
- 13. 특정 콘텐츠 유형이 포함 된 REST 요청
- 14. 컨트롤러에서 전자 메일을 보내는 단위 테스트는 어떻게해야합니까?
- 15. 전자 메일을 보내는 동안 메모리 누수가 발생했습니다.
- 16. PHP를 사용하여 첨부 파일이 포함 된 gpg 암호화 전자 메일을 보내는 방법은 무엇입니까?
- 17. Outlook 2007 vsto에서 HTML 콘텐츠가 포함 된 전자 메일을 보내십시오.
- 18. - 메일을 보내는 방법?
- 19. .NET에서 전자 메일을 보내는 중 오류가 발생했습니다.
- 20. 코드에서 전자 메일을 보내는 방법은 무엇입니까?
- 21. smtp 서버없이 SharePoint에서 전자 메일을 보내는 테스트.
- 22. 타이머가있는 일괄 전자 메일을 보내는 방법은 무엇입니까?
- 23. 조건부로 전자 메일을 보내는 Outlook 매크로
- 24. PEAR 메일을 사용하여 html 메일을 보내는 방법
- 25. PHP로 인라인 첨부 이미지가있는 HTML 전자 메일을 보내는 방법
- 26. 스프링 배치를 사용하여 여러 개의 전자 메일을 보내는 방법
- 27. log4net을 사용하여 windows form app에서 전자 메일을 보내는 방법
- 28. SSIS Help : 쿼리에서 잘못된 레코드가 발견되면 전자 메일을 보내는 방법
- 29. vb.net에서 전자 메일을 보내는 동안 진행률 표시 줄을 사용하는 방법?
- 30. 서버에 로그인하지 않고 주소에서 전자 메일을 보내는 방법
감사합니다, 나는 RRUZ 프로그램의 Gmail에서 일의 종류,하지만 전망을 실행 ust가 종료됩니다. 자세한 내용. 서비스 자동은 Indy를 사용하여 서버로부터 전자 메일을 보냅니다. 각 전자 메일에는 text/plain 부분, text/html 부분 및 선택적으로 첨부 파일이 있습니다. 이것은 잘 작동합니다. 콘텐츠 텍스트/캘린더 예제와 비슷한 끝에 ical을 통합하려고 할 때; method = 요청은 프로그램의 첫 번째 부분에 대한 메시지를 인코딩 한 후 프로그램이 정지하지만 달력 부분에는 문제가 있습니다. 메시지는 언급 된대로 ical과 내용의 tstrings을 갖는 텍스트/일반 텍스트처럼 구성됩니다. –
그러면 TIdMessage를 올바르게 채우지 못할 가능성이 있습니다. 실제 코드를 보여주십시오. –
내 코드 아래에 첨부 된 부분이 마지막에 붙습니다. 프로 시저 Emailer.BuildCalendar (Msg_In : TIdMessage); var s : TStrings; const TAB = # 9; begin try s : = TStringList.Create; s.Add ('BEGIN : VCALENDAR'); ... 여기에 다른 행이 추가되었습니다 ..... s.Add ('END : VCALENDAR'); // 일정 부분을 만듭니다. TIdText.Create (Msg_In.MessageParts, s)를 사용하여 을 처리하십시오. begin ContentType : = 'text/calendar; method = "REQUEST"; charset = "UTF-8" '; 부모 항목 : = 0; // IdText.CharSet end; finally s.free; 종료; 끝; .... 감사합니다. –