1

CI 正在使用 MVC.ActionMailer 从我的网站发送电子邮件。我在将内联图像嵌入电子邮件时遇到问题。

这是我的控制器动作

public EmailResult WelcomeEmail()
    {
        WelcomeMailVM welcomeDetails = new WelcomeMailVM()
        var path = HttpContext.Current.Server.MapPath("~/Content/images/myImage.png");
        Attachments.Add("myImage.png", System.IO.File.ReadAllBytes(path));
        //Attachments.Inline["holidaymate.png"] = System.IO.File.ReadAllBytes(path);
        To.Add("someEmail@test.com");
        From = "noreply@myDomain.com";
        Subject = "Welcome to My Site;
        return Email("WelcomeEmail", welcomeDetails);
    }

以及电子邮件的视图

@model HolidayMate.API.ViewModels.Mail.WelcomeMailVM
@using ActionMailer.Net.Mvc

@{
     Layout = "~/Views/Shared/_MailLayout.cshtml";
 }
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

 <table cellpadding="0" cellspacing="0" border="0" id="backgroundTable">
 <tr>
    <td style="width:300px">
        @Html.InlineImage("myImage.png")
    </td>
    <td style="width:300px">
        <table cellpadding="0" cellspacing="0" border="0">
            <tr>
                <td>Date</td>
                <td>@DateTime.Now.ToString("dd MMMM yyyy")
                </td>
            </tr>
        </table>
    </td>
</tr>
</table>

电子邮件发送完美。但图像未显示在电子邮件中。我在 gmail 和 Thunderbird 中遇到了这个问题。不幸的是,我没有可以测试的前景。谷歌搜索时,我发现以下内容

#38 Thunderbird 中不显示内联图像

但我不确定将电子邮件的内容类型发送到哪里。请任何帮助将不胜感激。

4

1 回答 1

0

我使用 MVC Mailer 而不是 ActionMailer。现在图像工作正常。

但是现在我无法发送电子邮件,除非我使用以下 SMTP 设置,我的正常设置不起作用

<mailSettings >
  <smtp deliveryMethod="Network" from="noreply@holidaymate.co.za">
    <network enableSsl="true" host="mail.mySMTP.com" port="25"  defaultCredentials="true" />
  </smtp>
</mailSettings>

不起作用,但是在使用以下内容时它可以工作

<mailSettings >
  <smtp deliveryMethod="Network" from="noreply@myDomain.co.za">
      network enableSsl="true" host="smtp.gmail.com" port="587" userName="someemail@gmail.com" password="mypassword"/>
  </smtp>
</mailSettings>
于 2012-05-27T10:24:11.640 回答