使用SMTP服务器发送邮件

时间:2011-09-08 10:02:10

标签: asp.net

地狱伙计!

我已使用SMTP服务器按以下方式发送邮件

 public bool SendMail(string mailFrom, string mailTo, string mailCC, string mailBCC, string subject, string body, string attachment, bool isBodyHtml)
{
    bool SendStatus = false;
    System.Net.Mail.MailMessage mailMesg = new System.Net.Mail.MailMessage(mailFrom, mailTo);

    if (mailCC != string.Empty)
        mailMesg.CC.Add(mailCC);

    if (mailBCC != string.Empty)
        mailMesg.Bcc.Add(mailBCC);

    if (!string.IsNullOrEmpty(attachment))
    {
        System.Net.Mail.Attachment attach = new System.Net.Mail.Attachment(attachment);
        mailMesg.Attachments.Add(attach);
    }
    mailMesg.Subject = subject;
    mailMesg.Body = body;
    mailMesg.IsBodyHtml = isBodyHtml;
    mailMesg.ReplyTo = new System.Net.Mail.MailAddress(mailFrom);

    System.Net.Mail.SmtpClient objSMTP = new System.Net.Mail.SmtpClient();


    string Host = System.Configuration.ConfigurationManager.AppSettings["MailHost"].ToString();
    string UserName = System.Configuration.ConfigurationManager.AppSettings["MailUserId"].ToString();
    string password = System.Configuration.ConfigurationManager.AppSettings["MailPassword"].ToString();


    objSMTP.Host = Host;
    objSMTP.Port = int.Parse(System.Configuration.ConfigurationManager.AppSettings["Port"].ToString());
    objSMTP.Credentials = new System.Net.NetworkCredential(UserName, password);


    objSMTP.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;

    try
    {
        objSMTP.Send(mailMesg);
        SendStatus = true;
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        mailMesg.Dispose();
        mailMesg = null;
    }


    return SendStatus;

}

我想知道是否可以在没有用户名的情况下发送邮件。密码? 如果可能,那么任何人都可以建议我如何做到这一点?

2 个答案:

答案 0 :(得分:0)

当然,如果您的smtp服务器不需要cridentials,则不应指定em。否则你应该。

答案 1 :(得分:0)

我认为您需要白名单列出您将发送电子邮件的IP,该电子邮件将是您的服务器,此选项在您要发送电子邮件的邮件帐户上完成。