2010-07-15 2 views
6

나는이 클래스를 사용 내가 그것을 사용하는 방법의 예 :System.Net.Mail는 메일이 Gmail 계정 물마루 보내 작동 Gmail로 첨부 파일이있는 메일을 보내려고하지만 작은 첨부 파일 만

GmailAccount acc = new GmailAccount("zippoxer", "******", "Moshe"); 
acc.SendMessage("[email protected]", "Hello Self!", "like in the title...", "C:\\822d14ah857.r"); 

sendMessage 첨부 방법의 마지막 매개 변수는 내가 추가 할 첨부 파일의 위치입니다.

첨부 파일이 400KB 인 메일을 보내려고 시도했는데 큰 효과가있었습니다 (900KB 작업도 가능). 그런데 4MB의 첨부 파일을 업로드하려고 시도했지만 작동하지 않았습니다. 시도 22 메가 바이트 -> 너무 일하지 않았다.

Gmail에서 메시지 당 최대 25MB의 제한이 있어야합니다. 내 메시지의 제목과 본문은 거의 비어 있으므로 메시지 크기의 일부로 간주하지 않습니다. 저 한계가 왜 나는가?

+0

정상적인 메일 클라이언트에서 작동합니까? – SLaks

+0

그래, 그 말 잊어 버려. 방금 22MB의 파일을 www.gmail.com에 업로드했습니다. –

+1

오류 메시지가 있습니까 아니면 전자 메일이 첨부 파일없이 전송됩니까? 서버 또는 로컬에서이를 실행하고 있습니까? 더 정확한 한계를 찾기 위해 더 많은 파일 크기를 테스트해볼 수 있습니까? (2MB? 4MB? 2 진 검색 기술이 작동 할 수도 있음) –

답변

5

이 게시물에 따르면 .Net 4.0의 버그입니다. 게시물에 지정된 제한은 3,050,417 바이트입니다. 게시물에 포함 된 해결 방법 코드를 사용해 볼 수 있습니다. 희망이 도움이됩니다.

http://connect.microsoft.com/VisualStudio/feedback/details/544562/cannot-send-e-mails-with-large-attachments-system-net-mail-smtpclient-system-net-mail-mailmessage

+0

고맙습니다. –

+0

다음 서비스 팩이 나타날 때까지 ..... 이제이 문제에 대한 공용 패치를 사용할 수 있습니다. 여기에서 찾으실 수 있습니다 : https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=30226 – excalibur

0

보내기가 완료되고 서버에 QUIT가 전송되기 전에 SmtpClient 객체가 범위를 벗어나거나 처리되지 않는지 확인하십시오.

+0

큰 파일을 업로드하려고 할 때 즉시 전송이 실패했기 때문에 그렇게 생각하지 않습니다. –

1

그것은 보낼 여전히 가능합니다. 첨부 파일 인코딩을 Base64 이외의 것으로 변경하십시오. 나는 이것을 시험해보고 Base36 인코딩 코드에 IndexOutOfBoundsException가 있다는 것을 발견했다. TransferEncoding.SevenBit을 사용하여 11MB 파일을 나에게 성공적으로 보낼 수있었습니다.

0

좋아, 이것은 .net 4의 버그입니다. Microsoft는 다음 서비스 팩에서 해결 될 것이라고 말합니다.

관련 문제