通过asp.net应用程序接收电子邮件

时间:2012-07-01 22:34:19

标签: asp.net .net vb.net

我希望通过我的asp.net应用程序接收电子邮件到我的电子邮件地址。它就像通过表格发送查询的人。我已经使用了以下代码,似乎没有做任何事情。我记得我做过我的一个网站,不记得我是怎么做到的。请找到以下代码。

谢谢,

eMessage.To = "info@boilernetworkservices.co.uk"
        eMessage.From = txtEmail.Text
        eMessage.Subject = "Web Submission"
        eMessage.Body = "Web submission received from " & txtName.Text & ". Phone no: " & txtPhone.Text & "."
        eMessage.Priority = MailPriority.High
        SmtpMail.Send(eMessage)

我怎样才能使这个工作?

2 个答案:

答案 0 :(得分:8)

您的示例代码显示了如何使用SMTP发送电子邮件,但您将无法使用此协议从远程服务器检索电子邮件。

用于检索电子邮件的两种最常见的协议是POP3IMAP4,不幸的是,.NET框架并没有像使用SMTP一样提供它们的实现。

电子邮件检索的一个选项是使用开源POP3客户端OpenPop.NET,这在此SO问题中讨论:retrieve email using c#?

答案 1 :(得分:0)

我为我的公司设置了一个Google帐户,例如myCompanyName@gmail.com。 我将其用作中继。 您必须将Google帐户设置为“允许安全程度较低的应用程序”。

这是我的代码,让潜在客户填写我们的联系信息并将其发送给我(即使在发布到Azure时也可以使用):

private void SendEmailToMyCompany(ContactInfo contactInfo)
    {
        string message = contactInfo.Message.Replace("\n", "<br />");

        MailAddress from = new MailAddress(contactInfo.Email);
        MailAddress to = new MailAddress("myhotmailaccount@hotmail.com");
        MailMessage mailMessage = new MailMessage(from, to);

        StringBuilder body = new StringBuilder();
        body.AppendFormat($"<b>First Name:</b> {contactInfo.FirstName}");
        body.Append("<br />");
        body.AppendFormat($"<b>Last Name:</b> {contactInfo.LastName}");
        body.Append("<br />");
        body.AppendFormat($"<b>Phone:</b> {contactInfo.Phone}");
        body.Append("<br />");
        body.AppendFormat($"<b>Email:</b> {contactInfo.Email}");
        body.Append("<br />");
        body.AppendFormat($"<b>Message:</b><br /><br /> {message}");

        mailMessage.Body = body.ToString();
        mailMessage.Subject = "MyCompany Customer Contact";
        mailMessage.IsBodyHtml = true;

        string smtpHost = _config["EmailSettings:SmtpHost"];
        string port = _config["EmailSettings:Port"];
        string userName = _config["EmailSettings:UserName"];
        string password = _config["EmailSettings:Password"];

        SmtpClient client = new SmtpClient(smtpHost)
        {
            Port = int.Parse(port),
            Credentials = new NetworkCredential(userName, password),
            EnableSsl = true
        };

        client.Send(mailMessage);
    }

然后这是来自app.config的我的电子邮件设置:

"EmailSettings": {
"SmtpHost": "smtp.gmail.com",
"Port": 587,
"UserName": "myCompanyNameGmailAccount@gmail.com",
"Password": "**********"

}