Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya dapat membenamkan imej terus ke dalam badan e -mel menggunakan C#?

Bagaimanakah saya dapat membenamkan imej terus ke dalam badan e -mel menggunakan C#?

Barbara Streisand
Barbara Streisandasal
2025-01-25 01:27:11467semak imbas

How Can I Embed Images Directly into the Body of an Email Using C#?

embedding imej di badan e -mel dengan c

secara langsung membenamkan imej dalam badan e -mel menggunakan C# memerlukan pendekatan tertentu, kerana lampiran e -mel standard hanya dipaparkan sebagai ruang letak. Kod C# yang ditapis ini menunjukkan bagaimana untuk membenamkan imej dengan betul:

<code class="language-csharp">MailMessage mailWithImg = GetMailWithImg();
MySMTPClient.Send(mailWithImg); // Ensure MySMTPClient is properly configured

private MailMessage GetMailWithImg() {
    MailMessage mail = new MailMessage();
    mail.IsBodyHtml = true;
    mail.AlternateViews.Add(GetEmbeddedImage("c:/image.png")); // Replace with your image path
    mail.From = new MailAddress("yourAddress@yourDomain"); // Replace with your email address
    mail.To.Add("recipient@hisDomain"); // Replace with recipient's email address
    mail.Subject = "yourSubject"; // Replace with your email subject
    return mail;
}

private AlternateView GetEmbeddedImage(String filePath) {
    LinkedResource res = new LinkedResource(filePath);
    res.ContentId = Guid.NewGuid().ToString();
    string htmlBody = $"<img src=\"cid:{res.ContentId}\" />"; // Note the escaped quotes
    AlternateView alternateView = AlternateView.CreateAlternateViewFromString(htmlBody, null, MediaTypeNames.Text.Html);
    alternateView.LinkedResources.Add(res);
    return alternateView;
}</code>
Kod ini memanfaatkan kelas

dan AlternateView. LinkedResource mengaitkan fail imej dengan unik LinkedResource. HTML dalam ContentId kemudian merujuk ini AlternateView, memastikan imej dipaparkan secara sejajar. Kaedah ini menghalang tempat yang biasa "Red X" yang sering dilihat dengan imej yang dilampirkan. Ingatlah untuk menggantikan nilai letak dengan data sebenar anda. ContentId

Atas ialah kandungan terperinci Bagaimanakah saya dapat membenamkan imej terus ke dalam badan e -mel menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn