首页 > 解决方案 > 我的方法“SendMailByAttach”没有按预期工作

问题描述

我有一个SendMail动作方法和一个SendMailByAttach方法,但我不知道为什么我的SenMailByAttach方法不起作用并且要捕获,我设置了 enable ssl 并且......但它不起作用!

我的SendMail操作方法工作正常,但我认为我的问题出在SendMailByAttach方法上,我在 html 中正确输入:

public static bool SendMailByAttach(string subject, string body, string attachment, params string[] toMails)
{
    try
    {
        var mailMsg = new MailMessage();
        mailMsg.BodyEncoding = Encoding.UTF8;
        mailMsg.HeadersEncoding = Encoding.UTF8;
        mailMsg.SubjectEncoding = Encoding.UTF8;
        mailMsg.Priority = MailPriority.High;
        mailMsg.Subject = subject;
        mailMsg.Body = body;
        mailMsg.IsBodyHtml = true;
        mailMsg.From = new MailAddress("maxspeed201@gmail.com", "مهران ", Encoding.UTF8);
        mailMsg.Sender = new MailAddress("maxspeed201@gmail.com", "مهران ", Encoding.UTF8);
        mailMsg.Attachments.Add(new Attachment(attachment));
        foreach (var mail in toMails)
        {
            mailMsg.To.Add(new MailAddress(mail));
        }
        var smtp = new SmtpClient("smtp.gmail.com", 587);
        smtp.UseDefaultCredentials = false;
        smtp.EnableSsl = true;
        smtp.Timeout = 1000;
        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
        smtp.Credentials = new NetworkCredential("MyEmail", "MyPasswordEmail");
        smtp.Send(mailMsg);
        return true;
    }
    catch
    {
        return false;
    }
}

这是我的操作方法:

public ActionResult SendMail(string recivers, string title, string text, HttpPostedFileBase attachment)
{
    bool result = false;
    if (attachment != null)
    {
        string path = Server.MapPath("~") + "\\Files\\Attachment\\" + Path.GetFileName(attachment.FileName);
        attachment.SaveAs(path);                
        //az ultility sendemailbyAttachment etefade kardim
        result = MailSender.SendMailByAttach(title, text, path, recivers.Split(','));
    }
    else
    {
        result = MailSender.SendMail(title, text, recivers.Split(','));
    }
    if (result)
    { //Success in sending
        return MessageBox.Show("پیام با موفقیت ارسال شد", MessageType.Success);
    }
    else
    {
        return MessageBox.Show("پیام ارسال نشد", MessageType.Error);
    }
}

我的SendMailByAttach方法会抓住

标签: c#asp.net-mvc

解决方案


您可能正在尝试在 localhost 中使用 gmail 发送电子邮件,如果是这种情况,请登录到您发送电子邮件的 google 帐户并转到链接并允许安全性较低的应用程序。

如果您在远程服务器上遇到问题,那么您必须禁用“验证码”并需要通过访问上述链接来允许不太安全的应用程序。要禁用“验证码”,请转到链接。

希望这可以帮助。


推荐阅读