Pregunta

I am using MailMessage to send email from a web application. I believe I have the correct code in to "mask" the from name in the SendEmail() function

public static void SendEmail(string toAddress, string ccAddress, string bccAddress, string subject, string body, MemoryStream attachment, string attachmentName, bool isHtml, string fromAlias = "info@cipollainsurance.com")
    {
        using (MailMessage message = new MailMessage())
        {
            AlternateView htmlView = AlternateView.CreateAlternateViewFromString(AddHeaderAndFooter(subject, body).ToString(), new System.Net.Mime.ContentType("text/html"));

            var resources = LoadResources();

            foreach (LinkedResource resource in resources)
            {
                htmlView.LinkedResources.Add(resource);
            }

            message.AlternateViews.Add(htmlView);

            if (!string.IsNullOrEmpty(toAddress))
            {
                var addresses = toAddress.Split(',', ';');

                foreach (string address in addresses)
                {
                    message.To.Add(address);
                }
            }

            if (!string.IsNullOrEmpty(ccAddress))
            {
                var ccAddresses = ccAddress.Split(',', ';');

                foreach (string cc in ccAddresses)
                {
                    message.CC.Add(cc);
                }
            }

            if (!string.IsNullOrEmpty(bccAddress))
            {
                var bccAddresses = bccAddress.Split(',', ';');

                foreach (string bcc in bccAddresses)
                {
                    message.Bcc.Add(bcc);
                }
            }

            if (!string.IsNullOrWhiteSpace(fromAlias))
            {
                message.Sender = new MailAddress("info@cipollainsurance.com", fromAlias, System.Text.Encoding.ASCII);
            }
            message.Body = body;
            message.BodyEncoding = System.Text.Encoding.UTF8;
            message.Subject = subject;
            message.SubjectEncoding = System.Text.Encoding.UTF8;
            message.IsBodyHtml = isHtml;
            message.From = new MailAddress("info@cipollainsurance.com", "Cipolla Insurance");

            if (attachment != null)
            {
                message.Attachments.Add(new Attachment(attachment, attachmentName));
            }

            SmtpClient client = new SmtpClient();
            client.Send(message);
        }
    }

However the from email address still says email and email@webedgemedia.com which is what is specified in web.config.

<smtp from="info@cipollainsurance.com" deliveryMethod="Network">
    <network host="smtp.gmail.com" enableSsl="true" port="587" password="myPassword" userName="email@webedgemedia.com" />
</smtp>

Can someone identify what I'm missing to send the email out as info@cipollainsurance.com?

¿Fue útil?

Solución

I don't believe GMAIL allows you to do that - it makes it pretty trivial to use their services as a SPAM relay otherwise.

The most you can do is set a different REPLY-TO but your GMAIL (account) email is still FROM.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top