受信メールから添付ファイルを取得する方法

文書番号 : 37255     文書種別 : 使用方法     登録日 : 2014/04/18     最終更新日 : 2014/04/18
文書を印刷する
対象製品
Secure iNetSuite for .NET 4.0J
詳細
添付ファイルは、基本的に MailMessage.Attachments から取得できます。
また、「Content-Disposition: inline」で添付されたファイルは、
MailMessage.Resources から取得することができます。

◎サンプルコード(VB)
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  With Pop1
    For Each msg As Dart.Mail.PopMessage In .Messages
      '添付ファイルを取得します
      GetAttachment(msg.Message)

      'リソースを取得します
      GetResources(msg.Message)
    Next
  End With
End Sub

Private Sub GetAttachment(ByVal m As Dart.Mail.MailMessage)
  For Each att As Dart.Mail.Attachment In m.Attachments
    att.Content.MoveTo("c:¥temp¥" & att.FileName)

    ''DecodeToMemory = Trueの場合
    'Using f As New System.IO.FileStream("c:¥temp¥" & att.FileName, IO.FileMode.Create)
    '  att.GetContentStream.CopyTo(f)
    'End Using
  Next
End Sub

Private Sub GetResources(ByVal m As Dart.Mail.MailMessage)
  For Each r As Dart.Mail.Resource In m.Resources
    Dim strFile As String = r.ContentType.Name

    If strFile = "" Then
      strFile = r.ContentDisposition.FileName
    End If

    Using f As New System.IO.FileStream("c:¥temp¥" & strFile, IO.FileMode.Create)
      f.Write(r.Content, 0, r.Content.Length)
    End Using
  Next
End Sub


◎サンプルコード(C#)
private void button1_Click(object sender, EventArgs e)
{
  foreach (Dart.Mail.PopMessage msg in pop1.Messages)
  {
    //添付ファイルを取得します
    GetAttachment(msg.Message);

    //リソースを取得します
    GetResources(msg.Message);
  }
}

private void GetAttachment(Dart.Mail.MailMessage m)
{
  foreach (Dart.Mail.Attachment att in m.Attachments)
  {
    att.Content.MoveTo("c:¥¥temp¥¥" + att.FileName);

    ////DecodeToMemory = Trueの場合
    //using (System.IO.FileStream f = new System.IO.FileStream("c:¥¥temp¥¥" + att.FileName, System.IO.FileMode.Create))
    //{
    //  att.GetContentStream().CopyTo(f);
    //}
  }
}

private void GetResources(Dart.Mail.MailMessage m)
{
  foreach (Dart.Mail.Resource r in m.Resources)
  {
    string s = r.ContentType.Name;
    if (string.IsNullOrEmpty(s)) s = r.ContentDisposition.FileName;

    using (System.IO.FileStream f = new System.IO.FileStream("c:¥¥temp¥¥" + s, System.IO.FileMode.Create))
    {
      f.Write(r.Content, 0, r.Content.Length);
    }
  }
}


添付ファイルを取得する方法については、製品ヘルプの下記のページもご参照下さい。

◎製品ヘルプ
 -メールの受信(POP)
  -添付ファイルを保存する(POP)