如何发邮件,asp.net附件 [英] How to send mail with attachment in asp.net

查看:230
本文介绍了如何发邮件,asp.net附件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


  

这是我的尝试,我正在一个错误:


  
  

我SendMail.aspx


 <!DOCTYPE HTML PUBLIC -  // W3C // DTD XHTML 1.0过渡// ENhttp://www.w3.org/TR/xhtml1/DTD/ XHTML1-transitional.dtd>
< HTML的xmlns =htt​​p://www.w3.org/1999/xhtml>
<头=服务器>
    <标题>< /标题>
< /头>
<身体GT;
    <表ID =form1的=服务器>
    < D​​IV>
        <表样式=边界:1px的固体ALIGN =中心>
            &所述; TR>
                &所述; TD列跨度=2ALIGN =中心>
                    < B>发送邮件使用asp.net&LT附件; / B>
                < / TD>
            < / TR>
            &所述; TR>
                &所述; TD>
                    从:
                < / TD>
                &所述; TD>
                    < ASP:文本框ID =txtFrom=服务器>< / ASP:文本框>
                < / TD>
            < / TR>
            &所述; TR>
                &所述; TD>
                    至:
                < / TD>
                &所述; TD>
                    < ASP:文本框ID =txtTo=服务器>< / ASP:文本框>
                < / TD>
            < / TR>
            &所述; TR>
                &所述; TD>
                    学科:
                < / TD>
                &所述; TD>
                    < ASP:文本框ID =txtSubject=服务器>< / ASP:文本框>
                < / TD>
            < / TR>
            &所述; TR>
                &所述; TD>
                    附加文件:
                < / TD>
                &所述; TD>
                    < ASP:文件上传ID =fileUpload1=服务器/>
                < / TD>
            < / TR>
            &所述; TR>
                < TD VALIGN =顶>
                    身体:
                < / TD>
                &所述; TD>
                    < ASP:文本框ID =txtBody=服务器的TextMode =多行栏目=30行=10>< / ASP:文本框>
                < / TD>
            < / TR>
            &所述; TR>
                &所述; TD>
                < / TD>
                &所述; TD>
                    < ASP:按钮的ID =btnSubmit按钮的文本=发送=服务器的OnClick =btnSubmit_Click/>
                < / TD>
            < / TR>
        < /表>
    < / DIV>
    < /表及GT;
< /身体GT;
< / HTML>


  

我SendMail.aspx.cs


 使用System.Net.Mail;
使用System.Net;保护无效btnSubmit_Click(对象发件人,EventArgs的发送)
        {
            邮件MAILMESSAGE新= MAILMESSAGE();
            mail.To.Add(txtTo.Text);
            //mail.To.Add(\"amit_jain_online@yahoo.com);
            mail.From =新的MailAddress(txtFrom.Text);
            mail.Subject = txtSubject.Text;
            mail.Body = txtBody.Text;
            mail.IsBodyHtml = TRUE;            //采用FileUpload控件安装文件,并在文件中内存流
            如果(fileUpload1.HasFile)
            {
                mail.Attachments.Add(新附件(fileUpload1.PostedFile.InputStream,fileUpload1.FileName));
            }
            SmtpClient SMTP =新SmtpClient();
             //或者您的SMTP服务器地址            的NetworkCredential NC =新的NetworkCredential();
            nc.UserName =myusername@gmail.com;
            nc.Password =输入mypassword;
            smtp.Credentials = NC;
            smtp.Port = 587;
            smtp.Host =smtp.gmail.com;
            smtp.UseDefaultCredentials = FALSE;
            //或者你的SMTP电子邮件ID和密码
            smtp.EnableSsl = TRUE;
            smtp.Send(邮件);
        }


  

我得到这个错误不知道该怎么做:


  
  

SMTP服务器要求安全连接或客户端未通过身份验证。该>服务器响应为:5.5.1需要验证。
  了解更多



解决方案

尝试端口465,而不是587,请。
如果我没有记错,Gmail使用587 TLS和465用于SSL。

THIS IS MY ATTEMPT I AM GETTING AN ERROR:

My SendMail.aspx

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table style="border: 1px solid" align="center">
            <tr>
                <td colspan="2" align="center">
                    <b>Send Mail with Attachment using asp.net</b>
                </td>
            </tr>
            <tr>
                <td>
                    From:
                </td>
                <td>
                    <asp:TextBox ID="txtFrom" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    To:
                </td>
                <td>
                    <asp:TextBox ID="txtTo" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    Subject:
                </td>
                <td>
                    <asp:TextBox ID="txtSubject" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    Attach a file:
                </td>
                <td>
                    <asp:FileUpload ID="fileUpload1" runat="server" />
                </td>
            </tr>
            <tr>
                <td valign="top">
                    Body:
                </td>
                <td>
                    <asp:TextBox ID="txtBody" runat="server" TextMode="MultiLine" Columns="30" Rows="10"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                </td>
                <td>
                    <asp:Button ID="btnSubmit" Text="Send" runat="server" OnClick="btnSubmit_Click" />
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

My SendMail.aspx.cs

using System.Net.Mail;
using System.Net;

protected void btnSubmit_Click(object sender, EventArgs e)
        {
            MailMessage mail = new MailMessage();
            mail.To.Add(txtTo.Text);
            //mail.To.Add("amit_jain_online@yahoo.com");
            mail.From = new MailAddress(txtFrom.Text);
            mail.Subject = txtSubject.Text;
            mail.Body = txtBody.Text;
            mail.IsBodyHtml = true;

            //Attach file using FileUpload Control and put the file in memory stream
            if (fileUpload1.HasFile)
            {
                mail.Attachments.Add(new Attachment(fileUpload1.PostedFile.InputStream, fileUpload1.FileName));
            }
            SmtpClient smtp = new SmtpClient();
             //Or Your SMTP Server Address

            NetworkCredential nc = new NetworkCredential();
            nc.UserName="myusername@gmail.com";
            nc.Password="mypassword";
            smtp.Credentials = nc;
            smtp.Port = 587;
            smtp.Host = "smtp.gmail.com";
            smtp.UseDefaultCredentials = false;
            //Or your Smtp Email ID and Password
            smtp.EnableSsl = true;
            smtp.Send(mail);
        }

I am getting this Error dont know what to do:

The SMTP server requires a secure connection or the client was not authenticated. The >server response was: 5.5.1 Authentication Required. Learn more at

解决方案

Try port 465 instead of 587, please. If I remember correctly, gmail uses 587 for TLS and 465 for SSL.

这篇关于如何发邮件,asp.net附件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆