2017-10-02 2 views
0

전자 메일을 보낼 수있는 ASP.NET 웹 사이트를 Azure에 게시했습니다. 일부는 일반 텍스트이지만 삽입 된 이미지가 포함 된 뉴스 레터 스타일의 환영 이메일을 추가했습니다. 코드는 VB.NET입니다. 전자 메일을 보내기 전에 미리보기를 표시하는 개발 서버에서 시스템이 잘 작동하도록했습니다. Azure에서는 뉴스 레터 전자 메일을 보내는 코드가 작동하지 않습니다. 일반 텍스트 전자 메일은 정상적으로 진행되며 뉴스 레터를 HTML 전자 메일로 테스트 한 결과 포함 된 이미지가 없으므로 정상적으로 진행됩니다. 미리보기를 통해 이미지를 찾을 수 있으므로 이미지를 볼 수 있으며 액세스 할 수 있습니다. 나는 어떤 오류 메시지도받지 못한다. 이메일은 sendgrid 계정에 절대로 나타나지 않는다. 코드는 다음과 같다 :Azure에서 Sendgrid를 사용하여 이미지가 포함 된 전자 메일 보내기

 Dim research As String = Server.MapPath("~\ImageTemp\" + query.ImageName) 
         'Extend the array 
         ReDim Preserve arrImages(i + 1) 
         arrImages(i + 1).ipath = respath 
         arrImages(i + 1).fname = qry.ImageName 
         arrImages(i + 1).id = "img" & i + 1 

내가 웹을 확인했다 :

 Try 
     Dim mymessage = New SendGridMessage 
     mymessage.From = New MailAddress("[email protected]") 

     mymessage.AddTo(txtemail.Text) 

     mymessage.Subject = "Welcome Email" 

     mymessage.Text = plaintext 
     mymessage.Html = htmlBody 

     Dim arrct As Integer = arrImages.Count - 1 
     For i As Integer = 0 To arrct 
      mymessage.AddAttachment(arrImages(i).ipath) 
      mymessage.EmbedImage(arrImages(i).fname, arrImages(i).id) 
     Next 

     Dim username = ConfigurationManager.AppSettings("emailServiceUserName") 
     Dim pswd = ConfigurationManager.AppSettings("emailServicePassword") 

     Dim credentials = New NetworkCredential(username, pswd) 
     Dim transportweb = New Web(credentials) 

     transportweb.DeliverAsync(mymessage) 

     'code here to display success message 

    Catch exc As Exception 
     'error code here 
    End Try 

이미지의 배열은 그들과 같이 변경되지 않는 한 폴더에있는 이미지의 숫자로 채워집니다

코드가 로컬 서버에서 작동하지만 Azure에서는 작동하지 않지만이 특정 질문에 도움이되는 답변은없는 다른 사람들을 찾을 수 있습니다. 이미지를 처리하는 방식과 관련이 있어야하지만 이미지를 볼 수는 없습니다. 이 Unable to send emails on Azure Web App using Sendgrid How to send embedded images with sendgrid emails? Sending an email with attachment using SendGrid

+0

나는이 라이브러리에 익숙하지 해요,하지만를'transportweb.DeliverAsync (mymessage)는'무서운 것 수상한. 비동기 호출을 한 다음 마치기를 기다리지 않는 것처럼 보입니다. – mason

+0

내가 github에서 본 것부터 당신은 단지 transportweb.DeliverAsync (mymessage) .wait() 콘솔 앱을 필요로합니다. 그리고 그것은 단지 hang을 야기하는 웹 어플리케이션에서 작동하지 않습니다. –

+0

다른 누구도 이걸 보게 될 경우에 대비해서 배열에 설정하는 대신 첨부 파일을 추가 할 때 경로를 설정하여 해결했습니다. –

답변

0

대답이에 addattachment 코드를 변경하는 것입니다 검토 :

Dim arrct As Integer = arrImages.Count - 1 
    For i As Integer = 0 To arrct 
     mymessage.AddAttachment(Server.Mappath("~\ImageTemp\" & arrImages(i).fname) 
     mymessage.EmbedImage(arrImages(i).fname, arrImages(i).id) 
    Next 
관련 문제