これはそれほど複雑ではないはずです。
.pdf を添付したメールを送信したいだけです。電子メールは添付ファイル付きで送受信されますが、長さが常に 1k 未満です。Outlook でファイルを開こうとすると、「サポートされていないファイルの種類」または「ファイルが破損している (正しくデコードされていない)」ため、開くことができないというメッセージが Adobe 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;
}
}