C#SMTP邮件不工作?

C#SMTP邮件不工作?,c#,email,smtp,C#,Email,Smtp,为什么这不起作用 无法发送邮件。Smtp失败 pemail是一个电子邮件地址。工作积极主动 错误是: SmtpException未处理 发送邮件失败 任何人?使用系统; private void SendMail() { clGast.SelectById(clReservering.Gastid); System.Net.Mail.MailMessage mailtje = new System.Net.Mail.MailMessage("nore

为什么这不起作用

无法发送邮件。Smtp失败

pemail是一个电子邮件地址。工作积极主动

错误是:

SmtpException未处理

发送邮件失败

任何人?

使用系统;
   private void SendMail()
    {
        clGast.SelectById(clReservering.Gastid);
        System.Net.Mail.MailMessage mailtje = new System.Net.Mail.MailMessage("norepy@robocamp.nl", clGast.pemail);
        mailtje.Subject = "Bevestiging reservering Robocamp";
        mailtje.Body = "Geachte meneer/mevrouw " + clGast.ptussenvoegsel + " " + clGast.pachternaam + ",\n\n";
        mailtje.Body += "Hierbij de bevestiging van u reservering bij robocamp. Hieronder staan de gegevens nogmaals vermeld : \n\n";
        mailtje.Body += "Van datum: " + clReservering.Datumstart + " \n";
        mailtje.Body += "Tot datum: " + clReservering.Datumeind + " \n";
        mailtje.Body += "Plaats nummer: " + clReservering.Plaatsid + " \n\n";

        SmtpClient client = new SmtpClient();
        client.Port = 25;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;
        client.Host = "smtp.google.com";

        client.Send(mailtje); 
    }
使用System.Collections.Generic; 使用System.Linq; Net系统; 使用System.Net.Mail; 使用系统文本; /// ///用于发送简单电子邮件的简单Emailer类。 /// 公共类电子邮件发送程序 { /// ///接收用户电子邮件和项目名称并生成电子邮件 /// ///收件人电子邮件地址 公共静态void SendMail(字符串收件人) { 尝试 { //设置邮件消息 MailMessage msg=新的MailMessage(); msg.Subject=“电子邮件主题”; msg.Body=“电子邮件正文”; msg.From=新邮件地址(“来自电子邮件地址”); msg.To.Add(收件人); msg.IsBodyHtml=false;//可以是true也可以是false //设置SMTP客户端并发送邮件 使用(SmtpClient SmtpClient=new SmtpClient()) { smtpClient.Host=“smtp.gmail.com”; smtpClient.EnableSsl=true; smtpClient.Port=587;//Gmail使用端口587 smtpClient.UseDefaultCredentials=false;//必须在下面的凭据之前设置。。。 凭证=新的网络凭证(“Gmail用户名”、“Gmail密码”); smtpClient.DeliveryMethod=SmtpDeliveryMethod.Network; smtpClient.Send(msg); } } 捕获(SmtpFailedRecipientsException sfrEx) { //TODO:处理异常 //无法向所有收件人发送电子邮件时。 投掷sfrEx; } 捕获(SmtpException sEx) { //TODO:处理异常 //SMTP客户端无法完成发送操作时。 扔性; } 捕获(例外情况除外) { //TODO:处理异常 //发送过程中可能发生的任何异常。 掷骰子; } } }
您需要将端口设置为587并启用SSL:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;

/// <summary>
/// Simple Emailer class for sending a simple email.
/// </summary>
public class Emailer
{
    /// <summary>
    /// Takes a users email and item name and generates an email
    /// </summary>
    /// <param name="recipient">Recipients e-mail address</param>
    public static void SendMail(string recipient)
    {
        try
        {
            // Setup mail message
            MailMessage msg = new MailMessage();
            msg.Subject = "Email Subject";
            msg.Body = "Email Body";
            msg.From = new MailAddress("FROM Email Address");
            msg.To.Add(recipient);
            msg.IsBodyHtml = false; // Can be true or false

            // Setup SMTP client and send message
            using (SmtpClient smtpClient = new SmtpClient())
            {
                smtpClient.Host = "smtp.gmail.com";
                smtpClient.EnableSsl = true;
                smtpClient.Port = 587; // Gmail uses port 587
                smtpClient.UseDefaultCredentials = false; // Must be set BEFORE Credentials below...
                smtpClient.Credentials = new NetworkCredential("Gmail username", "Gmail Password");
                smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtpClient.Send(msg);
            }
        }
        catch (SmtpFailedRecipientsException sfrEx)
        {
            // TODO: Handle exception
            // When email could not be delivered to all receipients.
            throw sfrEx;
        }
        catch (SmtpException sEx)
        {
            // TODO: Handle exception
            // When SMTP Client cannot complete Send operation.
            throw sEx;
        }
        catch (Exception ex)
        {
            // TODO: Handle exception
            // Any exception that may occur during the send process.
            throw ex;
        }
    }
}
我通常也会指定用户名和密码

以下是不含基础结构代码的完整列表:

Client.EnableSsl = true;

“不工作”并不能很好地解释这个问题。请将您看到的错误消息/行为与您预期的进行比较。旁注:我不相信谷歌有开放中继SMTP服务器……有很多东西可以阻止电子邮件到达您的收件箱,其中许多与代码无关。SMTP服务器的响应是什么?SmtpException未处理发送邮件失败可能是重复的,请参阅我更新的答案和更完整的有效列表。
MailMessage msg = new MailMessage(new MailAddress("test@gmail.com"), new MailAddress("test@gmail.com"));
msg.Subject = "The Subject";
msg.Body = "The Body";
SmtpClient client = new SmtpClient();
client.Host = "smtp.gmail.com"
client.Port = 587;
client.EnableSsl = true;
client.Credentials = new NetworkCredential("userName", "pa55word");
client.Send(msg);
client.Dispose();