iPdfWriter.Mail, extends iPdfWriter, contains extension methods to send by mail PdfInput instances as well as OutputResult.
I hope it helps someone. 😏
- From nuget gallery
- From package manager console
PM> Install-Package iPdfWriter.Mail
var doc = new PdfInput
{
AutoUpdateChanges = true,
Input = "~/Resources/Sample-01/file-sample.pdf"
};
// report title
doc.Replace(new ReplaceText(
new WithTextObject
{
Text = "#TITLE#",
NewText = "Lorem ipsum",
Offset = PointF.Empty,
Style = StylesHelper.Sample01.TextStylesTable["ReportTitle"],
ReplaceOptions = ReplaceTextOptions.AccordingToMargins
}))
// bar-chart image
.Replace(new ReplaceText(
new WithImageObject
{
Text = "#BAR-CHART#",
Offset = PointF.Empty,
Style = StylesHelper.Sample01.ImagesStylesTable["Default"],
ReplaceOptions = ReplaceTextOptions.Default,
Image = PdfImage.FromFile("~Resources/Sample-01/Images/bar-chart.png")
}))
// image
.Replace(new ReplaceText(
new WithImageObject
{
Text = "#IMAGE1#",
Offset = PointF.Empty,
Style = StylesHelper.Sample01.ImagesStylesTable["Center"],
ReplaceOptions = ReplaceTextOptions.AccordingToMargins,
Image = PdfImage.FromFile("~/Resources/Sample-01/Images/image-1.jpg")
}));
var pdfCreationResult = doc.CreateResult();
if (!pdfCreationResult.Success)
{
return;
}
var sendResult = pdfCreationResult.Result.Action(new SendMail
{
FromAddress = " >> WRITE HERE EMAIL ADDRESS OF THE SENDER << ",
FromDisplayName = " >> WRITE HERE THE NAME TO DISPLAY << ",
AttachedFilename = "Sample-01", // OutputResult file name
Settings = new SmtpMailSettings
{
Credential = new SmtpCredential
{
Port = 465,
UseSsl = true,
Host = SmtpMail.GmailSmtpHost, // YOU CAN ALSO USE: SmtpMail.MailtrapSmtpHost OR SmtpMail.EtherealSmtpHost, for more information, please see Sample02 and Sample03
Email = " >> WRITE HERE YOUR EMAIL << ",
UserName = " >> WRITE HERE YOUR USERNAME << ",
Password = " >> WRITE HERE YOUR PASSWORD << "
},
Templates = new TemplateSettings
{
IsBodyHtml = true,
BodyTemplate = "Hey!!!",
SubjectTemplate = "test pdf file"
},
Recipients = new RecipientsSettings
{
ToAddresses = new[] { " >> WRITE HERE EMAIL ADDRESS OF THE RECIPIENT << " }
},
Attachments = new[]
{
"~/Resources/Sample-01/Images/bar-chart.png",
"~/Resources/Sample-01/Images/image-1.jpg"
}
}
});
if (!sendResult.Success)
{
// Handle error(s)
}
var doc = new PdfInput
{
AutoUpdateChanges = true,
Input = "~/Resources/Sample-01/file-sample.pdf"
};
// report title
doc.Replace(new ReplaceText(
new WithTextObject
{
Text = "#TITLE#",
NewText = "Lorem ipsum",
Offset = PointF.Empty,
Style = StylesHelper.Sample01.TextStylesTable["ReportTitle"],
ReplaceOptions = ReplaceTextOptions.AccordingToMargins
}))
// bar-chart image
.Replace(new ReplaceText(
new WithImageObject
{
Text = "#BAR-CHART#",
Offset = PointF.Empty,
Style = StylesHelper.Sample01.ImagesStylesTable["Default"],
ReplaceOptions = ReplaceTextOptions.Default,
Image = PdfImage.FromFile("~Resources/Sample-01/Images/bar-chart.png")
}))
// image
.Replace(new ReplaceText(
new WithImageObject
{
Text = "#IMAGE1#",
Offset = PointF.Empty,
Style = StylesHelper.Sample01.ImagesStylesTable["Center"],
ReplaceOptions = ReplaceTextOptions.AccordingToMargins,
Image = PdfImage.FromFile("~/Resources/Sample-01/Images/image-1.jpg")
}));
var pdfCreationResult = await doc.CreateResultAsync();
if (!pdfCreationResult.Success)
{
return;
}
var sendResult = await pdfCreationResult.Result.Action(new SendMailAsync
{
FromAddress = " >> WRITE HERE EMAIL ADDRESS OF THE SENDER << ",
FromDisplayName = " >> WRITE HERE THE NAME TO DISPLAY << ",
AttachedFilename = "Sample-01", // OutputResult file name
Settings = new SmtpMailSettings
{
Credential = new SmtpCredential
{
Port = 465,
UseSsl = true,
Host = SmtpMail.GmailSmtpHost, // YOU CAN ALSO USE: SmtpMail.MailtrapSmtpHost OR SmtpMail.EtherealSmtpHost, for more information, please see Sample02 and Sample03
Email = " >> WRITE HERE YOUR EMAIL << ",
UserName = " >> WRITE HERE YOUR USERNAME << ",
Password = " >> WRITE HERE YOUR PASSWORD << "
},
Templates = new TemplateSettings
{
IsBodyHtml = true,
BodyTemplate = "Hey!!!",
SubjectTemplate = "test pdf file"
},
Recipients = new RecipientsSettings
{
ToAddresses = new[] { " >> WRITE HERE EMAIL ADDRESS OF THE RECIPIENT << " }
},
Attachments = new[]
{
"~/Resources/Sample-01/Images/bar-chart.png",
"~/Resources/Sample-01/Images/image-1.jpg"
}
}
});
if (!sendResult.Success)
{
// Handle error(s)
}
- Please see next link documentation.
If you have found iPdfWriter.Mail useful at work or in a personal project, I would love to hear about it. If you have decided not to use iPdfWriter.Mail, please send me and email stating why this is so. I will use this feedback to improve iPdfWriter.Mail in future releases.
My email address is