在 smtp 客户端 c# .net 中为电子邮件附加 Base64 图像 url

问题描述

我正在尝试使用 SMTP 客户端发送电子邮件。我需要将图像作为附件发送。现在,图像被保存为 base64 字符串。可以在没有附件的情况下发送电子邮件。但是当我尝试添加附件时,无法发送电子邮件

这里,financeMediaPath 是包含我的 base64 图像 URL 的字符串。图像可以以任何格式保存。我只想将该图片附加到我的电子邮件中。

public void ExpenseAdded(Email message,string toEmail,string firstName,string lastName,string admin,FinanceEntity finance,string financeCategory,string financeMediaPath)
    {
        MailMessage mail = new MailMessage();

        mail.From = new MailAddress(username);
        mail.To.Add(toEmail);
        string url = "http://localhost:4200/#/currentRequests";

        mail.Subject = "Mobile Team Reimbursement " + firstName + " - " + finance.RequestedDate + " " + financeCategory;
        mail.IsBodyHtml = true;


        mail.Body = "Hi " + admin + ",<br><br>" +
                    firstName + " has entered a new expense in HR portal.<br>" +
                    "<ul><li> Name: '" + firstName + " " + lastName + "'</li><li> Category: '" + financeCategory + "'</li><li> Project: '" + finance.ProjectName + "'</li><li> Total Amount: '" + finance.TotalAmount + "'</li><li> Description: '" + finance.Description + "'</li><li> Account Details: '" + finance.AccountNumber + " " + finance.AccountOwner + " " + finance.Branch + "'</li></ul>" +
                    "<br><br>Message: " + finance.Message + "<br><br>Please <a href = '" + url + "'>click here</a> to view all current pending expense requests." + "<img src='data:image/jpeg;base64,<!-- base64 data --> />";

        Attachment attachment = new Attachment(financeMediaPath);
        attachment.TransferEncoding = TransferEncoding.Base64;
        mail.Attachments.Add(attachment);


        SmtpClient smtp = new SmtpClient();

        smtp.Port = 587;
        smtp.Host = smtpServer;
        smtp.EnableSsl = true;
        smtp.UseDefaultCredentials = true;
        smtp.Credentials = new NetworkCredential(username,password);
        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
        smtp.Send(mail);

    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)