求发邮件的代码! 在网上找了很多都不能发送成功

a81420754 2009-10-15 03:07:04

/// <summary>
/// 发送邮件
/// </summary>
/// <param name="SmtpServer">发件邮箱服务器</param>
/// <param name="PassWord">发件人邮箱密码</param>
/// <param name="SendMail">发件人邮箱</param>
/// <param name="SendName">发件人在邮件中的显示名</param>
/// <param name="ReceiverMail">收件人邮箱</param>
/// <param name="ReceiverName">收件人在邮箱中的显示名</param>
/// <param name="MailSubject">邮件标题</param>
/// <param name="MailBody">邮件正文</param>
/// <param name="Attachments">附件路径</param>
/// <returns></returns>

private bool SendMail(string smtpServer,string password,string sendMail,string sendName, string receiverMail,string receiverName,string mailSubject,string mailBody,string attachments)
{
SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = smtpServer;
smtpClient.Timeout = 60000;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential(sendMail.Split('@')[0], password);

MailAddress fromAddress = new MailAddress(sendMail);//发件人地址
MailAddress toAddress = new MailAddress(receiverMail);//收件人地址
MailMessage mail = new MailMessage(fromAddress,toAddress);//创建邮件
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.SubjectEncoding = System.Text.Encoding.UTF8;
mail.IsBodyHtml = true;
mail.Subject = mailSubject;
mail.Body = mailBody;
mail.Priority = MailPriority.High;
if (attachments != null && attachments != "")
{
mail.Attachments.Add(new Attachment(attachments));
}
try
{
smtpClient.Send(mail);
return true;
}
catch (Exception e)
{
Response.Write(e.Message);
return false;
}
}
...全文
163 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzxap 2009-10-15
  • 打赏
  • 举报
回复
邮件服务器的问题,自己搭建一个
huangheping520hhp 2009-10-15
  • 打赏
  • 举报
回复
大型的邮箱现在都不提供第三方了,SMTP不管用了
jackyzsy2008 2009-10-15
  • 打赏
  • 举报
回复
用WinMail吧,我毕业设计用过,可以发送成功。
whxwchg 2009-10-15
  • 打赏
  • 举报
回复
using System.Web.Mail;

MailMessage objMailMessage;
//MailAttachment objMailAttachment;
// 创建一个附件对象
//objMailAttachment = new MailAttachment(null);//发送邮件的附件
// 创建邮件消息
objMailMessage = new MailMessage();
objMailMessage.BodyFormat = MailFormat.Html;
objMailMessage.From = "xxx@sina.com";//源邮件地址
objMailMessage.To = "xxx@qq.com";//目的邮件地址,也就是发给我哈
objMailMessage.Subject = "标题";//发送邮件的标题
objMailMessage.Body = "内容";//发送邮件的内容
//objMailMessage.Attachments.Add(objMailAttachment);//将附件附加到邮件消息对象中
objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
//用户名
objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "发送人的账号");
//密码
objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "密码");

//SMTP地址
SmtpMail.SmtpServer = "smtp.sina.com.cn";
//开始发送邮件
SmtpMail.Send(objMailMessage);
zhuyuan0506 2009-10-15
  • 打赏
  • 举报
回复
我用的是JMAIL,网上很容易下

现在很多发送不成功,一般不是代码错误,而是像163,qq,新浪,搜狐等大型的邮件提供商都不提供给我们第三方发送邮件(好像是过滤IP吧,只有特定IP才能利用他们的SMTP)
我目前是用公司邮局发的,可成功发送!

以下方法可用(现在仍在使用中)
public void Send(string EmailAddress)
{
jmail.MessageClass oJmailMessage = new jmail.MessageClass(); //建立发邮件对象
oJmailMessage.Encoding = "BASE64"; //字符集
oJmailMessage.Charset = "GB2312"; //附件的格式
oJmailMessage.ContentType = "text/html"; //
oJmailMessage.ISOEncodeHeaders = false; //是否将信头编码成iso-8859-1字符集
oJmailMessage.Priority = Convert.ToByte(1); //优先集
oJmailMessage.From= "web@163.com";//发送邮箱的名称
oJmailMessage.FromName = "web";//在客户接收邮件时,显示发件人名称
oJmailMessage.Subject = "欢迎您!";//邮件标题

oJmailMessage.MailServerPassWord = "123";//发送邮箱的密码
oJmailMessage.MailServerUserName = "web@163.com";//发送邮箱的名称
oJmailMessage.AddRecipient("接收人的EMAIL地址", "", ""); //添加联系人.添加多个联系人的话,重复该语句
oJmailMessage.Body = "您好!";//邮件正文

try
{
if (oJmailMessage.Send("mail.163.com", false))//mail.163.com为提供邮件SMTP服务地址
{
Alert("邮件发送成功!");
}
else
{
Alert("邮件发送失败!");
}
oJmailMessage = null;
}
catch (Exception)
{
oJmailMessage = null;
Alert("邮件发送失败!");
}

}
threenewbee 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 a81420754 的回复:]
谁给一个可以发送邮件的smtpServer
[/Quote]
自己开一个,只要你有公网ip

用Win2003 + Exchange 2003配置下

防火墙允许23端口。
正宗熊猫哥 2009-10-15
  • 打赏
  • 举报
回复
用微软自带的类

using System.Net.Mail;

SmtpClient client = new SmtpClient(stmp地址);

client.Credentials = new System.Net.NetworkCredential(用户名,密码);
client.Send(message);
lilihua520 2009-10-15
  • 打赏
  • 举报
回复
public bool SendMail()
{
#region 发送邮件
jmail.Message Jmail = new jmail.Message(); //是有关邮件的对象

//string strSubject = "Hello"; //主题

//string strBody = "你好哇!!";//内容

//string strFromEmail = "jl99000@gmail.com"; //邮件原地址

//string strToEmail = "196779792@qq.com"; //收件人邮件地址

Jmail.Silent = false;//是否抛出异常false会抛出

Jmail.Logging = false;//创建日志

Jmail.Charset = "GB2312"; //邮件编码

Jmail.ContentType = "text/html";//格式

Jmail.AddRecipient("196779792@qq.com","","");//收件人邮件地址

Jmail.From = "jl99000@gmail.com"; //邮件原地址

Jmail.Body = "你好哇!!";//内容

Jmail.Subject = "Hello";//主题

Jmail.Priority = 1;//优先级1-5 1为最高

//Jmail.AddAttachment("c:\\",true,null); //附件

Jmail.MailServerUserName = "jl99000@gmail.com";//smtp用户名

Jmail.MailServerPassWord = "990004086";//smtp密码

try
{
Jmail.Send("smtp.gmail.com", false);//发送
}
catch (Exception a)
{
Response.Write(a);
}
finally {
Jmail.Close();
}

Response.Write("12111");

return true;
#endregion
}
protected void Button1_Click(object sender, EventArgs e)
{
SendMail();
}

用这个以前用的!主要是你的邮件服务器支持smtp啊!
qqzeng-ip 2009-10-15
  • 打赏
  • 举报
回复
要有服务器的域名 密码 ip就可以发了的
不然发不出去的
CODE163 2009-10-15
  • 打赏
  • 举报
回复
用QQ的邮箱试试 先在发送邮箱里进行设置开启QQ STMP服务
a81420754 2009-10-15
  • 打赏
  • 举报
回复
要沉入海底了,自己顶!!
a81420754 2009-10-15
  • 打赏
  • 举报
回复
我用的新浪的,返回信息:
SMTP 服务器要求安全连接或客户端未通过身份验证。 服务器响应为: Authentication required
littlegang 2009-10-15
  • 打赏
  • 举报
回复
呵呵,看看有没有可能是:
.net里面的smtp认证过程做的不好,和所有的邮件客户端都不太一样

这个问题当时让我折腾了很长时间,最后是和其它邮件客户端程序对比tcp包数据才看出来的

如果是的话,你找其它的邮件服务器试试,有些邮件服务器是没法和.net的怪模式兼容的,比如winwebmail3.6版本
a81420754 2009-10-15
  • 打赏
  • 举报
回复
谁给一个可以发送邮件的smtpServer
threenewbee 2009-10-15
  • 打赏
  • 举报
回复
smtp服务器是否工作正常
有没有加密
是否使用指定的端口?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧