用.net以免费邮箱qq以smtp方式实现发送邮件功能,为什么在正式不可以,在测试环境可以?求解

问题描述

附代码///邮件发送处理///</summary>///<paramname="filePatch">附件路径</param>///<paramname="mailname">收件箱账号</param>///<paramname="zhuti">主题</param>///<returns></returns>publicstringMAIL(stringfilePatch,stringmailname,stringzhuti){SmtpClientsmtp=newSmtpClient();//实例化一个SmtpClientsmtp.DeliveryMethod=SmtpDeliveryMethod.Network;//将smtp的出站方式设为Networksmtp.Host="smtp.qq.com";//指定smtp服务器地址smtp.Port=587;//指定smtp服务器的端口,默认是25,如果采用默认端口,可省去//smtp.UseDefaultCredentials=true;//smtp.EnableSsl=true;//smtp服务器是否启用SSL加密//如果你的SMTP服务器不需要身份认证,则使用下面的方式,不过,目前基本没有不需要认证的了smtp.UseDefaultCredentials=true;//smtp.Timeout=50000000;//如果需要认证,则用下面的方式smtp.Credentials=newNetworkCredential("xxxxxxx@qq.com","gctdboapemaqjjhg");MailMessagemm=newMailMessage();//实例化一个邮件类mm.Priority=MailPriority.Normal;//邮件的优先级,分为Low,Normal,High,通常用Normal即可mm.From=newMailAddress("xxxxxxxxxxxx@qq.com","购电影",Encoding.GetEncoding(936));mm.To.Add(newMailAddress(mailname,"发送("+zhuti+")卡号信息",Encoding.GetEncoding(936)));//mm.To.Add(newMailAddress("h@163.com","接收者h",Encoding.GetEncoding(936)));mm.Subject=zhuti;//邮件标题mm.SubjectEncoding=Encoding.GetEncoding(936);//这里非常重要,如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。//936是简体中文的pagecode,如果是英文标题,这句可以忽略不用mm.IsBodyHtml=true;//邮件正文是否是HTML格式mm.BodyEncoding=Encoding.GetEncoding(936);//邮件正文的编码,设置不正确,接收者会收到乱码mm.Body="<fontcolor='red'>卡号信息</font>";//邮件正文mm.Attachments.Add(newAttachment(filePatch));//添加附件,第二个参数,表示附件的文件类型,可以不用指定//可以添加多个附件//mm.Attachments.Add(newAttachment(@"d:b.doc"));try{smtp.Send(mm);mm.Dispose();return"1";}catch(Exceptionex){mm.Dispose();returnex.ToString();}}求解。。。。。。急

解决方案

解决方案二:
照你这个配置妥妥地发不了,我比较好奇你在测试环境里是怎么能发成功的smtp.Port=587;//指定smtp服务器的端口,默认是25,如果采用默认端口,可省去

把587改成465//smtp.EnableSsl=true;//smtp服务器是否启用SSL加密

把注释去掉,需要开启SSL
解决方案三:
我这个在smtp.Port=465;//指定smtp服务器的端口,默认是25,如果采用默认端口,可省去smtp.EnableSsl=true;//smtp服务器是否启用SSL加密;这样操作在我本地都不通过;只有smtp.Port=587;smtp.EnableSsl=true,在vs2010里就正常,可是放到服务器上就不成功啊
解决方案四:
看了一下QQ邮箱的设置,465和587都可以,具体没有说明区别,我测了一下,可能587不需要SSL,465需要SSL。你的程序放在服务器上的时候,是一直发送失败还是偶尔?在服务器上telnetsmtp.qq.com465,telnetsmtp.qq.com587看看这两个端口是不是都能通然后,试一下SSL+465/noSSL+587两个组合。发送失败的时候把异常信息记录下来,看一下具体是因为什么原因失败的
解决方案五:
百度了一下,465和587是加密方式不一样,一个是SSL,一个是TLS改成ssl+465,再继续测吧
解决方案六:
我是小白,问你一下,如何在服务器上测465和587是否能通
解决方案七:
如果端口=587smtp.EnableSsl=false,会提示SMTP服务器要求安全连接或客户端未通过身份验证。服务器响应为:MustissueaSTARTTLScommandfirst.设置成true,在vs2010没问题,放到正式环境就有问题了;而端口=465smtp.EnableSsl=true提示请求超时
解决方案八:
开始运行用cmd打开命令提示符pingsmtp.qq.com看结果telnetsmtp.qq.com465看结果
解决方案九:
别讨论那些跟问题无关的东西了,既然测试环境能过,说明邮件类没有大问题。关键是要搞清楚你的错误到底是什么错误,你追踪错误消息没?????也许是防火墙什么的隔离导致的,也许原因根本就不是什么技术问题导致的
解决方案十:
这个?。。。。。。。。
解决方案十一:
版权所有(c)2009MicrosoftCorporation。保留所有权利。C:UsersAdministrator>telnetsmtp.qq.com465'telnet'不是内部或外部命令,也不是可运行的程序或批处理文件。C:UsersAdministrator>pingsmtp.qq.com正在Pingsmtp.qq.com[163.177.72.176]具有32字节的数据来自163.177.72.176的回复:字节=32时间=58msTTL=52来自163.177.72.176的回复:字节=32时间=57msTTL=52来自163.177.72.176的回复:字节=32时间=57msTTL=52来自163.177.72.176的回复:字节=32时间=58msTTL=52163.177.72.176的Ping统计信息:数据包:已发送=4,已接收=4,丢失=0(0%丢失),往返行程的估计时间(以毫秒为单位):最短=57ms,最长=58ms,平均=57msC:UsersAdministrator>
解决方案十二:
是.net2.0项目
解决方案十三:
控制面板程序和功能启用或关闭windows功能勾上"Telnet客户端",然后确定再测一下telnetsmtp.qq.com465的结果
解决方案十四:
我的是windowserver2008r2输入telnetsmtp.qq.com465出现空白,而587出现220smtp.qq.comEsmtpQQMailServer
解决方案十五:
“不可以”是指什么?出错?还是对方没收到?有没有到邮箱中查看发信记录的变化?
解决方案:
引用13楼qq_24420983的回复:

我的是windowserver2008r2输入telnetsmtp.qq.com465出现空白,而587出现220smtp.qq.comEsmtpQQMailServer

这说明俩端口都没问题,问题有点诡异试一下SSL+587端口,看看正常还是失败,失败的话,看一下提示信息然后试一下noSSL+465,正常的话会提示要求安全连接
解决方案:
可以加你QQ吗?我的1577231764
解决方案:
ssl587的端口,把这个方法写成一般处理程序,放到我同事电脑的IIS里,我调用没问题,就是放在正式服务器里就出问题了,你看这是什么原因
解决方案:
用smtp.EnableSsl=false,端口=465会报异常是:操作超时
解决方案:
引用17楼qq_24420983的回复:

ssl587的端口,把这个方法写成一般处理程序,放到我同事电脑的IIS里,我调用没问题,就是放在正式服务器里就出问题了,你看这是什么原因

你的同事电脑中的web服务是不是启用了ssl?服务器上的iis是不是没有启用ssl?
解决方案:
前几天的遇到过类似的问题,原因是公司的网络的防火墙....因为同样的代码在家里是可以的发送邮件的
解决方案:
我这里有一段祖传代码。。#region发送邮件#region邮件属性privatestringuserName="";//电子邮箱用户名publicstringUserName{get{returnuserName;}set{userName=value;}}privatestringpassword="";//电子邮箱密码publicstringPassword{get{returnpassword;}set{password=value;}}privatestringfrom="";//发件者邮箱publicstringFrom{get{returnfrom;}set{from=value;}}privatestringmailTo="";//收件者邮箱privatestringsubject="";///<summary>///邮件主题///</summary>publicstringSubject{set{subject=value;}get{returnsubject;}}privatestringbody="";///<summary>///邮件内容///</summary>publicstringBody{set{body=value;}get{returnbody;}}privatestringsmtpServerName="smtp.qq.com";///<summary>///SMTP服务器名称///</summary>publicstringSMTPServerName{set{smtpServerName=value;}get{returnsmtpServerName;}}#endregion//发送邮件时候需要定义的属性///<summary>///初始化的时候就可以把所有属性加载进去EmailHelper///</summary>///<paramname="userName">发件者电子邮件用户名</param>///<paramname="password">发件者电子邮件密码</param>///<paramname="from">发件人电子邮箱</param>///<paramname="mailTo">收件人电子邮箱</param>///<paramname="subject">邮件主题</param>///<paramname="body">邮件内容</param>///<paramname="smtpServerName">例如smtp.163.com</param>publicstringEmailHelper(stringuserName,stringpassword,stringfrom,stringmailTo,stringsubject,stringbody,stringsmtpServerName){this.userName=userName;this.password=password;this.from=from;this.mailTo=mailTo;this.subject=subject;this.body=body;returnSend();}//邮件发送///<summary>///发送电子邮件///</summary>publicstringSend(){try{MailAddressfrom=newMailAddress(From);MailAddressto=newMailAddress(mailTo);System.Net.Mail.MailMessagemessage=newSystem.Net.Mail.MailMessage(from,to);message.Subject=Subject;message.Body=Body;SmtpClientclient=newSmtpClient(smtpServerName);client.Credentials=newNetworkCredential(userName,password);client.Send(message);//System.IO.File.WriteAllText("username.db",return"OK";}catch(Exceptione){//LogHelper.Error("邮件发送失败:n用户名:"+userName+"n密码:"+password+"n邮件内容:"+Body+"n错误信息:"+e.StackTrace);returne.Message.ToString();}}//发送邮件时调用的函数#endregion

解决方案:
我计算机名字改为英文。就Ok了

时间: 2024-10-27 03:01:19

用.net以免费邮箱qq以smtp方式实现发送邮件功能,为什么在正式不可以,在测试环境可以?求解的相关文章

详解thinkphp5+swoole实现异步邮件群发(SMTP方式)

本文介绍了thinkphp5+swoole实现异步邮件群发(SMTP方式),分享给大家,具体如下: 1.环境说明 阿里云centos7 thinkphp5.0.11 swoole2.0.8 2.tp实现邮件发送 在项目下建立如下的文件目录: 其中SendMail.php是我们实际调用的发送邮件的文件.以下是主要代码: namespace app\library\utils\mail; use app\library\utils\mail\PhpMailer; use app\library\ut

QQ?微信?为什么在QQ本身提供了语音化功能

文章描述:杂谈QQ.微信和移动互联 当我的膝盖上中了一箭. 腾讯内部好像有句这样的话:如果没有微信,腾讯公司很多高管恐怕每天晚上都会"睡不着",因为他们担心在移动互联网时代QQ会被某款全新的应用产品颠覆. 在看着这样的一句话的时候,我突然冒出了一个疑问:QQ?微信?为什么在QQ本身提供了语音化功能的情况下还会有微信这个独立产品出来呢?为什么在QQ已经占领了移动互联市场这么大的情况下,还会有那样的一句话呢?为什么??? 带着这样的疑问开始对比性思维,这是哥的长处: 微信的简单化: QQ的

qq邮箱-android 如何自己实现发送邮件功能

问题描述 android 如何自己实现发送邮件功能 不用系统的邮件功能 而是自己实现 该怎么弄? 另外现在QQ邮箱现在好像要验证授权信息才能在手机上发送邮件 这些问题该如何编程解决? 求大神指点 解决方案 不建议你在客户端发邮件,因为客户端代码是暴露的,你可以提交到服务器,服务器来发,邮箱用163企业邮箱,支持smtp协议.

QQ产品介绍及测试环境

第1页:QQ2012全评测:产品介绍及测试环境 编者按: 深受大家期待的QQ2012 Beta1,近日的新进展中据QQ产品团队透露,QQ2012 Beta1版本目前已经可以进行小范围优先体验活动.点击参加体验活动 腾讯QQ这款产品是综合型即时通讯工具,拥有庞大的用户群体.因此腾讯QQ的每一次版本更新升级都会牵动网民的心情.本次QQ2012 Beta1升级,将推出多项好玩有趣的新体验,包括QQ皮肤将全新改版,QQ会话将增加各种趣味功能,在视频功能上将提供全新的技术架构,使用网络带宽占用低,视频更流

Laravel 基于 SMTP 驱动实现发送邮件

PHP 7 Laravel 5.1 OS X El Capitan 10.11.4 简介 Laravel 基于热门的 SwiftMailer 函数库提供了一个简洁的 API.Laravel 为 SMTP.Mailgun.Mandrill.Amazon SES.PHP 的 mail 函数及 sendmail 提供驱动,让你可以快速地从所选择的本地或云端服务开始发送邮件.(摘录 PHPhub 翻译文档) 配置 邮件配置文件是config/mail.php return [     // 默认发送邮件

oracle数据泵不同工作方式性能比较(一)测试环境

根据Oracle的文档的描述,数据泵采用不同的方式导出导入,性能也会有明显的差别,这次正好有机会测试一下,迁移表空间.直接路径.外部表方式,以及数据库链方式导出.导入的性能差异. 这篇介绍一下测试环境. 源数据库和目标数据库的版本都是10.2.0.3,不存在版本差异,字符集都是ZHS16GBK,国家字符集都是AL16UTF16字符集,源数据库和目标数据库都是16k的BLOCK_SIZE,因此采用迁移表空间的方式不存在任何的问题: SQL> SELECT GLOBAL_NAME FROM GLOB

PHP如何通过AJAX方式实现登录功能_php实例

本文实例讲述了Ajax+PHP+MySQL登陆示例.分享给大家供大家参考.具体如下: 运行效果截图如下: 具体代码如下: 1 login.php 登录界面中,javascript脚本用ajax方式异步请求dologin.php,dologin.php负责用户信息验证(包括验证码,php生成验证码可以自行搜索).登录界面的代码如下: <?php session_start();?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran

手机QQ国际版推出即时翻译功能,支持19国语言相互翻译

摘要: 虽然从目前的情况来看,承载腾讯国际化的是微信而非手机QQ,不过最近推出的手机QQ国际版,却在功能上向国际化迈出了一大步.新版的QQ International内置了7种语言,可以将聊天消息实 虽然从目前的情况来看,承载腾讯国际化的是微信而非手机QQ,不过最近推出的手机QQ国际版,却在功能上向国际化迈出了一大步.新版的"QQ International"内置了7种语言,可以将聊天消息实时翻译成外语,支持包括繁体中文.英语.韩语.日语.法语.阿拉伯语在内的19种语言. "

VS2010 测试功能之旅:编码的UI测试(4)-通“.NET研究”过编写测试代码的方式建立UI测试(上)

回顾 在之前的入门篇系列中,分别介绍了一个简单的示例, 操作动作的录制原理,通过修改UIMap.UItest文件控制操作动作代码的生成,对象的识别原理.接下来正式进入我们UI测试的进阶篇,在这一章,将讲述如何初步通过自己编写代码的方式来建立UI测试. 示例程序 一个系统的基本功能是增,删,改,查,其中增和改界面基本一样,删就几乎是一个按钮的事,所以我做了一个程序示例(下载点我),拥有增和查两个功能,之后的操作都将会在这个示例之上进行: 系统主窗口: 该系统拥有两个功能,"添加用户"和&