来自ASP.net的电子邮件将作为HTML附件

时间:2012-06-23 07:16:30

标签: c# asp.net html email html-email

正如标题所说,我正在从我的ASP.net网络应用程序发送电子邮件而没有任何附件(现在)但奇怪的是,电子邮件正在作为单独的HTML文件附加到空白电子邮件,就像我点击HTML文件它打开身体在单独的窗口中,我在身体中写的所有内容都作为独立的HTML文件,这只发生在我发送电子邮件到某些门户网站,如电子枪,但当我发送到gmail或hotmail地址,然后电子邮件完美没有附件和正文出现在应有的地方。

我的电子邮件地址是

    public bool sendMail(string messageSubject, System.Net.Mail.MailAddress fromEmailAddress, System.Net.Mail.MailAddress toEmailAddress, string source_id, string messageText)
    {
        System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
        mail.IsBodyHtml = true;
        mail.Subject = messageSubject;
        mail.From = fromEmailAddress;
        mail.To.Add(toEmailAddress);
        mail.Body = messageText;

        SmtpClient relayServer = new SmtpClient();

        List<KeyValuePair<string, string>> commandParameters = new List<KeyValuePair<string,string>>();
        commandParameters.Add(new KeyValuePair<string,string>("@source_id", source_id));
        DataTable sourcesTable = SQLSelect("SELECT * FROM LogiCrmSources WHERE source_id = @source_id", commandParameters);

        relayServer.Host = sourcesTable.Rows[0]["source_smtp"].ToString();
        relayServer.Port = Convert.ToInt16(sourcesTable.Rows[0]["source_smtp_port"].ToString());
        if (relayServer.Port == 25)
        {
            relayServer.EnableSsl = false;
        }
        else
        {
            relayServer.EnableSsl = true;
        }
        relayServer.Credentials = new System.Net.NetworkCredential(sourcesTable.Rows[0]["source_email"].ToString(), sourcesTable.Rows[0]["source_password"].ToString());
        try
        {
            relayServer.Send(mail);                
            return true;
        }
        catch(SmtpFailedRecipientException exp)
        {
            return false;
        }
    }

1 个答案:

答案 0 :(得分:1)

并非所有客户都能正确处理HTML电子邮件。例如,Gmail可以在您提及的门户网站中使用。在这些情况下,电子邮件的正文作为附件发送。