Zum Fußzeileninhalt springen
IRONPDF NUTZEN

Wie man mit IronPDF eine generierte PDF-Datei als Anhang in einer E-Mail von C# aus versendet

Die Automatisierung der Dokumentenbereitstellung ist eine häufige Anforderung in .NET-Anwendungen. Ob Rechnungen, Berichte oder Quittungen, Entwickler benötigen eine zuverlässige Möglichkeit, PDF-Dokumente programmatisch zu erstellen und direkt per E-Mail zu versenden. Die Möglichkeit, PDF-Dokumente als E-Mail-Anhänge zu versenden, vereinfacht Geschäftsabläufe und verbessert die Kundenkommunikation. In vielen ereignisgesteuerten Anwendungen, wie z. B. bei Schaltflächenklicks oder geplanten Aufgaben, kann eine E-Mail-Versandmethode sogar Parameter wie String-Betreff, Objekt-Absender und EventArgs als Teil des Systemworkflows enthalten. Dadurch wird sichergestellt, dass Ihr Prozess effizient ist, auch wenn Sie mit einem unscharfen Dokument oder anderen dynamisch generierten Assets arbeiten.

Dieses Tutorial zeigt, wie man die HTML-zu-PDF-Konvertierung von IronPDF mit der C#-E-Mail-Funktionalität kombiniert und wie man die generierte PDF-Datei als Anhang in einer E-Mail aus C# versendet. Mit C# können Entwickler in wenigen Zeilen Code eine PDF-Datei erzeugen, sie an eine E-Mail-Nachricht anhängen und eine E-Mail an einen beliebigen Empfänger senden.

Wie man eine generierte PDF-Datei als Anhang in einer E-Mail von C# mit IronPDF versendet: Bild 1 - IronPDF

Welche Werkzeuge werden für die PDF-Erstellung und den E-Mail-Versand in C# benötigt?

Zwei Komponenten machen diesen Arbeitsablauf möglich: eine Bibliothek zur PDF-Erzeugung und ein Mechanismus zum Versenden von E-Mails. IronPDF übernimmt die Erstellung von PDF-Dokumenten aus HTML-Inhalten, während .NET E-Mail-Funktionen über System.Net.Mail oder die moderne MailKit-Bibliothek unterstützt.

Installieren Sie das IronPDF NuGet-Paket über den Projektmappen-Explorer von Visual Studio oder die Paketmanager-Konsole:

Install-Package IronPdf

Wie man eine generierte PDF-Datei als Anhang in einer E-Mail von C# mit IronPDF versendet: Bild 2 - Installation

Für moderne E-Mail-Funktionen installieren Sie MailKit:

Install-Package MailKit

IronPDF verwendet eine Chromium-basierte Rendering-Engine, die pixelgenaue PDFs aus HTML, CSS und JavaScript erzeugt. Die Bibliothek funktioniert in allen Windows-, Linux- und macOS-Umgebungen, und .NET Core-Anwendungen profitieren von der plattformübergreifenden Kompatibilität.

Wie man eine generierte PDF-Datei als Anhang in einer E-Mail von C# mit IronPDF versendet: Bild 3 - Funktionen

Wie können Entwickler mit C# ein PDF im Speicher erzeugen?

Die ChromePdfRenderer Klasse konvertiert HTML Inhalte in PDF Dokumente. Anstatt die PDF-Datei auf der Festplatte zu speichern, bietet das resultierende PdfDocument-Objekt über seine BinaryData-Eigenschaft oder über einen neuen MemoryStream über seine Stream-Eigenschaft direkten Zugriff auf die Binärdaten.

using IronPdf;
// Create a new instance of the renderer
var renderer = new ChromePdfRenderer();
// Generate PDF document from HTML content
string htmlContent = @"
    <h1>Order Confirmation</h1>
    <p>Thank you for your purchase.</p>
    <p>Order Total: $99.99</p>";
PdfDocument PDF = renderer.RenderHtmlAsPdf(htmlContent);
// Access PDF as byte array for file attachment
byte[] pdfBytes = pdf.BinaryData;
using IronPdf;
// Create a new instance of the renderer
var renderer = new ChromePdfRenderer();
// Generate PDF document from HTML content
string htmlContent = @"
    <h1>Order Confirmation</h1>
    <p>Thank you for your purchase.</p>
    <p>Order Total: $99.99</p>";
PdfDocument PDF = renderer.RenderHtmlAsPdf(htmlContent);
// Access PDF as byte array for file attachment
byte[] pdfBytes = pdf.BinaryData;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Die Methode RenderHtmlAsPdf akzeptiert einen HTML-String und gibt ein vollständig gerendertes PDF-Dokument zurück. Die BinaryData-Eigenschaft stellt den PDF-Inhalt als Byte-Array zur Verfügung, was genau das Format ist, das für das Hinzufügen von Anhängen zu einer E-Mail-Nachricht benötigt wird. Bei diesem Ansatz werden Dateisystemoperationen vollständig vermieden, da die PDF-Datei während des gesamten Prozesses von der Erstellung bis zur Auslieferung im Speicher verbleibt, wie im folgenden Screenshot zu sehen ist.

Ausgabe

Wie man eine generierte PDF-Datei als Anhang in einer E-Mail von C# mit IronPDF versendet: Bild 4 - PDF-Ausgabe

Für komplexere Dokumente unterstützt IronPDF externes CSS und Bilder über den optionalen Parameter BasePath und ermöglicht so professionelle Dokumentenlayouts mit markengerechtem Styling.

Wie man eine generierte PDF-Datei als Anhang in einer E-Mail von C# mit IronPDF versendet: Bild 5 - Wie man eine generierte PDF-Datei als Anhang in einer E-Mail von C# aus versendet - IronPDF

Wie wird eine In-Memory-PDF-Datei an eine E-Mail-Nachricht angehängt?

MailKit bietet einen modernen, von Microsoft empfohlenen Ansatz für den Versand von E-Mails in .NET-Anwendungen und Webanwendungen. Die BodyBuilder-Klasse verarbeitet Anhänge, indem sie Byte-Arrays direkt akzeptiert, was die Integration mit IronPDF einfach macht.

using IronPdf;
using MailKit.Net.Smtp;
using MailKit.Security;
using MimeKit;
// Generate PDF document with IronPDF
var renderer = new ChromePdfRenderer();
string HTML = "<h1>Monthly Report</h1><p>Generated automatically.</p>";
PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
// Build new email message
var message = new MimeMessage();
message.From.Add(new MailboxAddress("Sender", "sender@example.com"));
message.To.Add(new MailboxAddress("Recipient", "recipient@example.com"));
message.Subject = "Your Report is Ready";
// Create body with PDF attachment
var builder = new BodyBuilder();
builder.TextBody = "Please find your report attached.";
builder.Attachments.Add("Report.pdf", pdf.BinaryData, new ContentType("application", "pdf"));
message.Body = builder.ToMessageBody();
// Send email via SMTP server
using var client = new SmtpClient();
await client.ConnectAsync("smtp.example.com", 587, SecureSocketOptions.StartTls);
await client.AuthenticateAsync("username", "password");
await client.SendAsync(message);
await client.DisconnectAsync(true);
using IronPdf;
using MailKit.Net.Smtp;
using MailKit.Security;
using MimeKit;
// Generate PDF document with IronPDF
var renderer = new ChromePdfRenderer();
string HTML = "<h1>Monthly Report</h1><p>Generated automatically.</p>";
PdfDocument PDF = renderer.RenderHtmlAsPdf(html);
// Build new email message
var message = new MimeMessage();
message.From.Add(new MailboxAddress("Sender", "sender@example.com"));
message.To.Add(new MailboxAddress("Recipient", "recipient@example.com"));
message.Subject = "Your Report is Ready";
// Create body with PDF attachment
var builder = new BodyBuilder();
builder.TextBody = "Please find your report attached.";
builder.Attachments.Add("Report.pdf", pdf.BinaryData, new ContentType("application", "pdf"));
message.Body = builder.ToMessageBody();
// Send email via SMTP server
using var client = new SmtpClient();
await client.ConnectAsync("smtp.example.com", 587, SecureSocketOptions.StartTls);
await client.AuthenticateAsync("username", "password");
await client.SendAsync(message);
await client.DisconnectAsync(true);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Mit diesem Codebeispiel wird ein vollständiges Arbeitsbeispiel für den PDF-zu-E-Mail-Workflow in einem einzigen Vorgang erstellt. Die Methode BodyBuilder.Attachments.Add akzeptiert drei Parameter: den Dateinamen, den der Empfänger sieht, das PDF-Byte-Array von IronPDF und den MIME-Typ, der das Format des Anhangs als application/pdf angibt. Die asynchronen Methoden stellen sicher, dass der Vorgang den aufrufenden Thread nicht blockiert, was für Webanwendungen, die mehrere gleichzeitige Anfragen verarbeiten, unerlässlich ist.

Der Parameter SecureSocketOptions.StartTls ermöglicht die verschlüsselte Kommunikation mit der SMTP-Serveradresse und schützt so die Anmeldedaten und den Inhalt der E-Mail während der Übertragung. Ersetzen Sie die Platzhalter für die SMTP-Client-Einstellungen durch die Konfigurationswerte Ihres E-Mail-Anbieters. Beachten Sie, dass Dienste wie Gmail ein App-Passwort für die SMTP-Authentifizierung erfordern.

How to Send Generated PDF File as Attachment in Email from C# Using IronPDF: Bild 6 - Plattformübergreifende Kompatibilität

Wie kann System.Net.Mail als Alternative für Dateianhänge verwendet werden?

Für Projekte, die ältere .NET-Versionen verwenden oder nur minimale Abhängigkeiten benötigen, bietet System.Net.Mail integrierte E-Mail-Funktionen. Obwohl Microsoft MailKit für Neuentwicklungen empfiehlt, ist dieser Ansatz auch für einfachere Szenarien praktikabel. Der folgende Code demonstriert ein komplettes Arbeitsbeispiel unter Verwendung des SmtpClient-Clients und der MailMessage-Klassen.

using IronPdf;
using System.Net;
using System.Net.Mail;
// Generate PDF document
var renderer = new ChromePdfRenderer();
PdfDocument PDF = renderer.RenderHtmlAsPdf("<h1>Invoice #1001</h1>");
// Create new MailMessage with attachment
using var message = new MailMessage("sender@example.com", "recipient@example.com");
message.Subject = "Invoice Attached";
message.Body = "Your invoice is attached to this email.";
// Attach PDF file from new MemoryStream
var stream = new MemoryStream(pdf.BinaryData);
message.Attachments.Add(new Attachment(stream, "Invoice.pdf", "application/pdf"));
// Send email via SMTP server
using var client = new SmtpClient("smtp.example.com", 587);
client.Credentials = new NetworkCredential("username", "password");
client.EnableSsl = true;
await client.SendMailAsync(message);
using IronPdf;
using System.Net;
using System.Net.Mail;
// Generate PDF document
var renderer = new ChromePdfRenderer();
PdfDocument PDF = renderer.RenderHtmlAsPdf("<h1>Invoice #1001</h1>");
// Create new MailMessage with attachment
using var message = new MailMessage("sender@example.com", "recipient@example.com");
message.Subject = "Invoice Attached";
message.Body = "Your invoice is attached to this email.";
// Attach PDF file from new MemoryStream
var stream = new MemoryStream(pdf.BinaryData);
message.Attachments.Add(new Attachment(stream, "Invoice.pdf", "application/pdf"));
// Send email via SMTP server
using var client = new SmtpClient("smtp.example.com", 587);
client.Credentials = new NetworkCredential("username", "password");
client.EnableSsl = true;
await client.SendMailAsync(message);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Der Hauptunterschied besteht darin, dass ein neuer MemoryStream aus dem Byte-Array erstellt wird, bevor die PDF-Datei angehängt wird. Der Konstruktor der Klasse Attachment akzeptiert einen Stream, einen Dateinamen und einen MIME-Typ als Parameter. Sowohl MailMessage als auch SmtpClient sind in using-Anweisungen verpackt, um die ordnungsgemäße Entsorgung der Ressourcen nach Abschluss des Sendevorgangs sicherzustellen. Die Methode message.Attachments.Add erstellt ein neues Anhangsobjekt aus dem Stream.

Ausgabe

Wie man eine generierte PDF-Datei als Anhang in einer E-Mail von C# mit IronPDF versendet: Bild 7 - Generierte PDF-Ausgabe

Wählen Sie MailKit für neue Projekte, die erweiterte Funktionen wie OAuth-Authentifizierung, IMAP-Unterstützung oder komplexe MIME-Verarbeitung erfordern. Verwenden Sie System.Net.Mail für einfachere Anforderungen oder wenn die Minimierung externer Abhängigkeiten eine Priorität ist.

Was sind praktische Anwendungen für PDF-E-Mail-Anhänge?

Dieses Muster für die PDF-Erzeugung und den E-Mail-Versand unterstützt zahlreiche Geschäftsszenarien. Die Rechnungsautomatisierung sendet Kaufbestätigungen sofort nach Abschluss der Transaktionen. Die Verteilung von Berichten liefert geplante Analysen an die Beteiligten ohne manuelle Eingriffe. Durch die Erstellung von Quittungen erhalten die Kunden eine sofortige Dokumentation ihrer Einkäufe. Jeder Anwendungsfall profitiert von der Möglichkeit, ein PDF-Dokument zu erstellen und es automatisch als Anhang zu versenden.

Der In-Memory-Ansatz bietet Vorteile gegenüber dateibasierten Alternativen. Die Anwendungen vermeiden E/A-Overhead auf der Festplatte und müssen keine temporären Dateien mehr bereinigen. Bei stark frequentierten Webanwendungen ist diese Effizienz besonders wertvoll.

Die Rendering-Optionen von IronPDF ermöglichen die Anpassung von Rändern, Kopf- und Fußzeilen sowie der Seitengröße. Die Entwickler können professionelle Dokumente erstellen, die sich für die Kommunikation mit dem Kunden eignen und neben dem PDF-Anhang auch einfachen Text oder HTML-formatierte E-Mail-Inhalte enthalten.

Abschluss

Durch die Kombination von IronPDF mit C#-E-Mail-Bibliotheken entsteht ein effizienter Arbeitsablauf für die automatische Zustellung von Dokumenten. Die BinaryData-Eigenschaft von IronPDF bietet direkten Zugriff auf PDF-Inhalte als Byte-Array, während MailKit oder System.Net.Mail die E-Mail-Übertragung nahtlos abwickeln. Dieser Ansatz sorgt für eine effiziente Arbeitsweise, indem unnötige Interaktionen mit dem Dateisystem vermieden werden.

Das Muster reicht von einfachen Benachrichtigungs-E-Mails bis hin zu komplexen Dokumentenautomatisierungssystemen. Ob beim Aufbau von Rechnungssystemen, Berichtsgeneratoren oder Tools für die Kundenkommunikation - dieser speicherinterne PDF-zu-E-Mail-Workflow bietet eine solide Grundlage. Der vollständige Arbeitsbeispielcode kann heruntergeladen und für spezifische Projektanforderungen angepasst werden.

Starten Sie eine kostenlose Testversion, um die PDF-Erzeugungsfunktionen von IronPDF kennenzulernen, oder sehen Sie sich die Lizenzierungsoptionen für den Produktionseinsatz an.

Wie man eine generierte PDF-Datei als Anhang in einer E-Mail von C# mit IronPDF versendet: Bild 8 - Lizenzierung

Häufig gestellte Fragen

Wie kann ich eine generierte PDF-Datei als E-Mail-Anhang in C# versenden?

Mit IronPDF können Sie generierte PDF-Dateien einfach als E-Mail-Anhänge versenden, indem Sie die PDF-Erstellungsfunktionen in die E-Mail-Versandfunktionen von .NET integrieren.

Was sind die Vorteile des Versands von PDF-Dateien per E-Mail in .NET-Anwendungen?

Der Versand von PDF-Dateien per E-Mail in .NET-Anwendungen hilft bei der Automatisierung der Dokumentenzustellung, der Rationalisierung von Geschäftsabläufen und der Verbesserung der Kundenkommunikation.

Kann IronPDF dynamische Inhalte in PDFs für E-Mail-Anhänge verarbeiten?

Ja, IronPDF ist in der Lage, PDF-Inhalte dynamisch zu generieren und eignet sich daher für ereignisgesteuerte Anwendungen, bei denen benutzerdefinierte PDFs als E-Mail-Anhänge versendet werden müssen.

Welche Parameter werden bei IronPDF üblicherweise in E-Mail-Versandmethoden verwendet?

Zu den gängigen Parametern gehören der E-Mail-Betreff, die Absenderinformationen und EventArgs, die eine effiziente Verarbeitung in ereignisgesteuerten Anwendungen gewährleisten.

Warum eignet sich IronPDF für die Automatisierung der Dokumentenzustellung?

IronPDF eignet sich für die Automatisierung des Dokumentenversands, da es eine zuverlässige PDF-Erstellung bietet und sich nahtlos in die C#-Funktionen für den E-Mail-Versand integrieren lässt.

Ist es möglich, den PDF-E-Mail-Versand mit IronPDF zu planen?

Ja, IronPDF kann in geplante Aufgaben integriert werden, um den Versand von PDF-E-Mails zu bestimmten Zeiten zu automatisieren und so die Effizienz des Workflows zu verbessern.

Unterstützt IronPDF die Erstellung von PDFs aus verschiedenen Datenquellen für E-Mail-Anhänge?

IronPDF unterstützt die Erstellung von PDFs aus mehreren Datenquellen und ermöglicht es Entwicklern, umfassende Dokumente für E-Mail-Anhänge zu erstellen.

Wie kann IronPDF die E-Mail-Kommunikation mit Kunden verbessern?

Durch die Möglichkeit, detaillierte PDF-Dokumente als Anhänge zu erstellen und zu versenden, erhöht IronPDF die Professionalität und Klarheit der E-Mail-Kommunikation mit Kunden.

Kann ich IronPDF verwenden, um Rechnungen und Berichte als PDF-Anhänge zu versenden?

Ja, IronPDF ist ideal für die Erstellung und den Versand von Rechnungen, Berichten und anderen Dokumenten als PDF-Anhänge und erfüllt damit verschiedene geschäftliche Anforderungen.

Welche Rolle spielt IronPDF bei der Verbesserung von Geschäftsabläufen?

IronPDF verbessert Geschäftsabläufe, indem es die nahtlose Erstellung und Verteilung von PDF-Dokumenten ermöglicht und so manuelle Eingriffe und Fehler reduziert.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen