2017-05-03 44 views
0

私はAzureモバイルサービスバックエンドで作業しており、SendGrid経由で電子メールを正常に送信できます。ただし、添付ファイルを追加しようとするたびに失敗します。私は電子メールを受け取ることはありません。ちょっとした調査の後、私は必要なものがすべて仮想パスであることを知りました。私はパス名を変更しましたが、それでも動作しません。SendGrid c#で電子メールを送信すると失敗する

これがなぜ失敗するのかわかりません。以下は

私のコードです:

var client = new SendGridClient("apiKey"); 

var msg = new SendGridMessage() 
     { 
      From = new EmailAddress(sender), 
      Subject = "Adherence Report", 
      PlainTextContent = "Sample Content ", 
      HtmlContent = "<strong>Hello, Email!</strong>" 
     }; 
      msg.AddTo(new EmailAddress(receipient, null)); 
      msg.AddAttachment(@"~\sample\adherence.csv", "Testing", null, null, null); 

     var response = await client.SendEmailAsync(msg); 
+2

_ "失敗" _と_ "うまくいきません" _私たちはあまり進歩しません - 例外はありますか? SendGridの管理インターフェイスに問題があることはありますか?あなたは '応答'の内容を調べましたか? –

+0

重複している可能性があります。 Server.MapPathを試して、完全なパスを取得してください。http://stackoverflow.com/questions/37945281/sending-an-email-withattachment-using-sendgrid –

+0

@JamesThorpe、これまでに例外は発生せず、 SendGridインターフェイス。私は応答の本文を印刷しました。これは "応答": "System.Net.Http.StreamContent"、 "file": "〜\ sample \\ adherence.txt"}}です。 – naffie

答えて

1

私は応答の内容をチェックし、スケジュール送信が400 BAD REQUESTエラーでキャンセルされていたからですが、失敗していたことに気づきました。

いくつかの調査の後、私はSendGridウェブサイトからこのリンクmail errorsを見つけました。 添付ファイルのエラーためのセクションの下で、彼らは

添付ファイルのコンテンツはBase64エンコードされなければならないことを説明します。

これが私の添付ファイルが失敗した理由です。

string sampleContent = Base64Encode("Testing"); // base64 encoded string 
var client = new SendGridClient("apiKey"); 

var msg = new SendGridMessage() 
    { 
     From = new EmailAddress(sender), 
     Subject = "Adherence Report", 
     PlainTextContent = "Sample Content ", 
     HtmlContent = "<strong>Hello, Email!</strong>" 
    }; 
     msg.AddTo(new EmailAddress(recipient, null)); 
     msg.AddAttachment("myfile.csv", sampleContent, "text/csv", "attachment", "banner"); 

    var response = await client.SendEmailAsync(msg); 

は私がSendGridを経由してメールを送信して、問題の異なる種類に直面していたので、これは後にすべての重複問題ではありませんでしたが判明:次のように働くので、最終的に取得するために、私は私のコードを編集しました。ファイル名もそのまま動作します。私にはServer.MapPathへの呼び出しは必要ありません。

添付ファイル付きのメールを正常に受信できます。

関連する問題