asp.net邮箱发送邮件问题
首先我用我的QQ邮箱给Gmail发邮件
代码:
string emailTo = "hcshasz789@gmail.com";
bool success = true;
string host = "
smtp.qq.com";
string emailUser = "934350983"; //发件人邮箱登录帐号
string emailPassword = "********"; //发件人邮箱登录密码
string emailFrom = "934350983@qq.com"; //发件人邮箱
if (emailTo == "" || emailTo == null)
{
success = false;
}
else
{
System.Net.Mail.SmtpClient client = new SmtpClient();
client.Host = host;
client.UseDefaultCredentials = false;
client.EnableSsl = false;
client.Port = 110;
client.Credentials = new System.Net.NetworkCredential(emailUser, emailPassword);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
System.Net.Mail.MailMessage message = new MailMessage(emailFrom, emailTo);
message.Subject = "标题"; //邮件标题
message.Body = "内容"; //邮件内容
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;
client.Send(message);
这个出现了:
参数或变量中有语法错误。 服务器响应为: mail from address must be same as authorization user
我又用Gamil来给我的QQ邮箱发邮件
代码:
MailAddress to = new MailAddress("934350983@qq.com");
MailAddress from = new MailAddress("hcshasz789@gmail.com");
MailMessage message = new MailMessage(from,to);
message.Subject = "subject";//设置邮件主题
message.IsBodyHtml = true;//设置邮件正文为html格式
message.Body = "body";//设置邮件内容
SmtpClient client = new SmtpClient("smtp.mail.yahoo.com");
//设置发送邮件身份验证方式
//注意如果发件人地址是abc@def.com,则用户名是abc而不是abc@def.com
client.Credentials = new NetworkCredential("hcshasz789","******");//账号和密码
client.Port = 465;
client.Send(message);
出现这个错误:
{"无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。"}
晕
都有错
都错在哪啊
那个大神来看看
追问:我是用网上徳一个邮箱向另一个邮箱发邮件 你这是用的做放松邮件的软件之类的内容
一 你是粘贴的内容 你根本不懂 二 你没解决我的问题 你这种人最TMD烦人了 滚!
答案:using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
using System.Text;
/// <summary>
/// SendEmail 的摘要说明
/// </summary>
public class SendEmail
{
public SendEmail()
{
}
private MailMessage mailMessage; private SmtpClient smtpClient;
private string password;//发件人密码
/// <summary>
/// 处审核后类的实例
/// </summary>
/// <param name="to">收件人地址</param>
/// <param name="from">发件人地址</param>
/// <param name="content">邮件正文</param>
/// <param name="title">邮件主题</param>
/// <param name="pwd">发件人密码</param>
public SendEmail(string to, string from, string content, string title, string pwd)
{
mailMessage= new MailMessage();
mailMessage.To.Add(to);
mailMessage.From = new MailAddress(from);
mailMessage.Subject = title;
mailMessage.Body = content;
mailMessage.IsBodyHtml = true;
mailMessage.BodyEncoding = Encoding.UTF8;
mailMessage.Priority = MailPriority.High;
this.password = pwd;
}
/// <summary>
/// 添加附件
/// </summary>
/// <param name="Path">路径</param>
public void add(string Path)
{
string[] path = Path.Split(',');
Attachment data; ;
ContentDisposition disposition;
for (int i = 0; i < path.Length; i++)
{
data = new Attachment(path[i], MediaTypeNames.Application.Octet);//实例化附件
disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(path[i]);//获取附件的创建日期
disposition.ModificationDate = System.IO.File.GetLastWriteTime(path[i]);//获取附件的修改日期
disposition.ReadDate = System.IO.File.GetLastAccessTime(path[i]);//获取附件的读取日期
mailMessage.Attachments.Add(data);//添加到附件中
}
}
/// <summary>
/// 发送
/// </summary>
public void Send()
{
if (mailMessage != null)
{
smtpClient = new SmtpClient();
smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, password);//
smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtpClient.Host = "smtp." + mailMessage.From.Host;
smtpClient.Send(mailMessage);
}
}
}
调用
SendEmail s = new SendEmail(TextBox1.Text, TextBox4.Text, TextBox3.Text, TextBox2.Text, TextBox5.Text);
s.Send();
会不会是没注册的问题?GMail我没用过,我用的是JMail。这个是我原先项目里的部分代码:
MessageClass message = new MessageClass();message.Charset = "gb2312";message.From = "zzb442787268@163.com";message.Subject = "密码找回";message.HTMLBody = "<style=\"color:#0000FF; font-size:12px; font-family:宋体;\">您的密码是:" + Maticsoft.DBUtility.DESEncrypt.Decrypt(Convert.ToString(dr["UserPwd"])); ;message.MailServerUserName = "zzb442787268";message.MailServerPassWord = "**********";message.AddRecipient(442787268@qq.com, "", "");message.Send("smtp.163.com", false);Response.Write("<script language='javascript'>alert('您的密码已经发送到绑定邮箱上,请查收!);location.href('SendEmail.aspx');</script>");附:Jmail的注册方式:regsvr32 jmail.dll//如果有路径的话,jmail.dll要写完整的路径这个是在XP下注册的,WIN 7下,我还没注册成功过...
上一个:asp.net如何连接Oracle数据库?
下一个:ASP.Net(C#)问题?