3

これはそれほど複雑ではないはずです。

.pdf を添付したメールを送信したいだけです。電子メールは添付ファイル付きで送受信されますが、長さが常に 1k 未満です。Outlook でファイルを開こうとすると、「サポートされていないファイルの種類」または「ファイルが破損している (正しくデコードされていない)」ため、開くことができないというメッセージが Adob​​e Reader に表示されます。コードは次のとおりです。

function Send() {
    var attachment = new Attachment(
    input.Data.ReceiptFile.InputStream, "Receipt.pdf", "application/octet-        stream"/*MediaTypeNames.Application.Pdf*/);

    this.SendSubmitReceiptNotification(new Attachment[] { attachment });
    }

private void SendSubmitReceiptNotification(Attachment[] attachments = null)
             {
                 try
                 {
                     var submitForSamplesFromEmail = Config.GetSetting("SubmitForSamples:FromEmail");
                     var submitForSamplesToEmails = Config.GetSetting("SubmitForSamples:ToEmails");

                     if (string.IsNullOrWhiteSpace(submitForSamplesFromEmail) || string.IsNullOrWhiteSpace(submitForSamplesToEmails))
                     {
                         // From/To missing.
                         return;
                     }

                     var toEmails = submitForSamplesToEmails.Split(
                         new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

                     var to = toEmails.ToArray();
                     var from = submitForSamplesFromEmail;
                     var subject = "Test";
                     var body = "<strong>Hi There</strong>";
                     var isHtml = true;

                     //
                     // make the email object
                     MailMessage message = new MailMessage();

                     // set whether or not it's an html message
                     message.IsBodyHtml = isHtml;

                     // add the from address
                     message.From = new MailAddress(from);

                     // add the subject
                     message.Subject = subject;

                     // add the message body
                     message.Body = body;

                     // add the attachments
                     if (attachments != null && attachments.Length > 0)
                     {
                         // there are attachments that need attaching
                         foreach (Attachment att in attachments)
                         {
                             // add each attachemnt in order
                             message.Attachments.Add(att);
                         }
                     }

                     // add the list of who to send the email to
                     foreach (string address in to)
                     {
                         message.To.Add(address);
                     }
                     //
                     //message.HeadersEncoding = System.Text.Encoding.Unicode

                     SmtpClient smtpClient = new SmtpClient();

                     smtpClient.Send(message);

                     //Email.Send(to, from, subject, body, isHtml, attachments);
                 }
                 catch (Exception e)
                 {
                     var error = e.Message;
                 }
             }
4

1 に答える 1