首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有没有办法看看System.Net.Mail是否起作用了

有没有办法看看System.Net.Mail是否起作用了
EN

Stack Overflow用户
提问于 2010-05-04 10:36:08
回答 4查看 530关注 0票数 4

我正在使用System.Net.Mail发送电子邮件,如下所示:

代码语言:javascript
运行
AI代码解释
复制
MailMessage message = new MailMessage();

message.From = new MailAddress("foo@foo.com");
message.To.Add(new MailAddress("foobar@foobar.com"));


message.Subject = "Hello";
message.Body = "This is a nice body..";

SmtpClient client = new SmtpClient();
client.Send(message);

我如何才能知道电子邮件是否已经发送,我可以加入一个if语句来检查它吗?那它会是什么样子呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-04 10:38:32

您可能希望将SMTP调用包装到一个try...catch块中-这样您就可以轻松地捕获可能发生的任何明显的SMTP相关错误:

代码语言:javascript
运行
AI代码解释
复制
try
{
   SmtpClient client = new SmtpClient();
   client.Send(message);
}
catch(Exception exc)
{
   // log the error, update your entry - whatever you need to do 
}

这将处理最明显的错误,例如

  • SMTP服务器未找到
  • SMTP服务器不是responding
  • SMTP拒绝您发送(例如,因为您未提供任何或有效的凭据)

一旦SMTP服务器收到您的邮件,它就不再是您的.NET所能控制的。您实际上不能做太多事情(除了检查SMTP服务器的日志中是否有错误)。

如果你想检查一下你的SMTP邮件是否真的“发送出去”了,你也可以把下面这几行代码添加到你的应用程序的app.config (或web.config)中,让.NET把你的邮件放到一个目录中(以EML文件的形式):

代码语言:javascript
运行
AI代码解释
复制
  <system.net>
    <mailSettings>
      <smtp deliveryMethod="SpecifiedPickupDirectory">
        <specifiedPickupDirectory pickupDirectoryLocation="C:\temp\mails"/>
      </smtp>
    </mailSettings>
  </system.net>

您的邮件现在将作为EML文件存储到C:\temp\mails目录中,您可以查看它们并检查它们是否如预期的那样。

票数 6
EN

Stack Overflow用户

发布于 2010-05-04 12:00:39

marc_s所说的关于try/catch的用法是正确的。

但值得注意的是,SMTP没有交付保证,并且试图计算出实际的交付数量是一门非常不精确的科学。

有些软件尝试使用许多技术,如图像错误和跟踪链接,但这些技术并不完全可靠。

许多服务器会默默地将未知地址的邮件失败,或者如果存在传输错误,以避免向垃圾邮件提供商提供太多信息。

所以,一旦你发送了它,如果没有例外,你只能希望它成功。不过,一种有价值的技术是在用户输入电子邮件地址时使用正则表达式对其进行验证。这有助于在影响邮件传递之前避免一些常见的地址问题。

票数 2
EN

Stack Overflow用户

发布于 2010-05-04 10:45:13

您可以安装和使用DevNullSmtp服务器-它不会发送任何电子邮件,但会记录并显示所有消息和流量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2764516

复制
相关文章
UIview
序:本文翻译自苹果官方文档,自己想系统的了解每个控件的官方解释。只翻译了部分,详情见官方文档。
星宇大前端
2022/06/02
7280
IOS移动开发从入门到精通 视图UIView、层CALayer(2)
或者修改 rootViewController参数 2、弹出框: import UIKit class ViewController:UIViewController { var label:UILabel! override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.brown label = UILabel(frame:CGRect(x:40, y:100,width:240, height:44)) label.text = ”” self.view.addSubview(label) let button = UIButton(frame:CGRect(x:40, y:180,width:240, height:44)) button.setTitle(“打开新的视图控制器”, for:UIControlState()) button.backgroundColor = UIColor.black button.addTarget(self, action:#selector(ViewController.openViewController),fo:.touchUpInside) self.view.addSubview(button) } func openViewController() { let newViewController = NewViewController() newViewController.labelTxt = “传递的参数!” newViewController.viewController = self self.present(newViewController, animated:true,completion:nil) } }
用户5760343
2019/07/05
4270
IOS移动开发从入门到精通 视图UIView、层CALayer(1)
1个UIWindow 或 UIView 1、设置背景色 import UIKit class ViewController:UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view,typically from a nib. let view = UIView(frame:CGRect(x:40, y:80,width:240, height:240)) view.backgroundColor = UIColor.black view.clipsToBounds=true self.view.addSubview(view) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
用户5760343
2019/07/05
7940
UIView和CALayer
1 2 3 4viewT.layer.cornerRadius = 10;//设置半径 viewT.layer.borderWidth = 10;//设置边框的宽度,当然可以不要 viewT.layer.borderColor = [[UIColor redColor] CGColor];//设置边框的颜色 viewT.layer.masksToBounds = YES;//设为NO去试试
用户2491699
2018/08/02
9960
UIView和CALayer
 UIView:http://blog.csdn.net/ZY_FlyWay/article/details/58611627
星宇大前端
2019/01/15
6860
UIview 和CALayer、UIWindow
UIView和CALayer都是源自NSObject。 UIView的继承结构为:UIResponder:NSObject。可以看出UIView的直接父类为UIResponder类。 可见UIResponder是用来响应事件的,也就是说UIView可以响应用户事件。 2.CALayer的继承结构:NSObject 直接从NSObject继承,因为缺少了UIResponder类,所以CALayer不能响应任何的用户事件。 它们分别所属的框架 1.UIView是在/System/Library/Frame
且行且珍惜_iOS
2018/05/22
6610
iOS动画三板斧(一)--UIView动画前言UIView 动画
iOS 精致的app,离不开酷炫合宜的动画。而iOS中的动画实现也有多种不同的方式。今天就来介绍一下iOS中的动画。本篇是第一篇,就讲一下最简单的动画实现方式,初学动画,简单的动画一般都是用这种方式来实现的。
Haley_Wong
2018/08/22
9310
iOS动画三板斧(一)--UIView动画前言UIView 动画
UIView - 生命周期
一般情况都是说UIViewController的生命周期,UIView的生命周期经常被忽视。
大壮
2019/02/22
2.9K0
UIView layoutSubviews调用时机
1.init初始化的时候是不会触发的。但是调用initWiftFrame 并且参数fram不为0的时候会调用.换句话就是大小或者位置更改的时候调用。
编程那点事
2023/02/25
4420
iOS14开发-UIView
在 iOS 13 中引入了新的 API — Diffable Data Source,它不仅能够驱动 UITableView 和 UICollectionView,而且可以更简单高效的实现数据的刷新。
YungFan
2021/01/21
12K0
iOS 页面渲染 - UIView & CALayer
今天我们来聊一聊 UIView 与 CALayer 的相关知识以及它们之间的关系,其实这部分内容要是引申出来会比较多,今天我们先收敛一下,先讲一些基本的东西,后面还会有系列文章对其进行扩展。关于iOS的UI渲染部分,还是建议大家看看Apple的官方文档核心动画编程指南[1]以及WWDC2011的sessionUnderstanding UIKit Rendering[2]。
CoderStar
2022/08/24
1.9K2
iOS 页面渲染 - UIView & CALayer
iOS学习——UIView的研究
在iOS开发中,我们知道有一个共同的基类——NSObject,但是对于界面视图而言,UIView是非常重要的一个类,UIView是很多视图控件的基类,因此,对于UIView的学习闲的非常有必要。在iO
mukekeheart
2018/03/26
2.8K0
iOS学习——UIView的研究
【已解决】Xcode在StoryBoard设置UIView的控件类是Cocoapods的类,运行还是UIView?
ZHVerifyCodeFiled作为我写在Cocoapods的空间,现在我在测试例子的Main.storyboard直接添加一个UIView使用我们Cocoapods的这个类,但是我们运行发现出来的对象还是UIView类。
君赏
2018/09/07
7970
iOS 开发从 UIView 动画说起
毋庸置疑的:在iOS开发中,制作动画效果是最让开发者享受的环节之一。一个设计严谨、精细的动画效果能给用户耳目一新的效果,吸引他们的眼光 —— 这对于app而言是非常重要的。 本文作为动画文集的第一篇,最开始是想做个qq下拉刷新的水滴动画的制作讲解,但这几天研读《iOS Animations by Tutorials》一书,对iOS动画开发有了更为深刻的了解,于是决定动画篇将从UIView动画开始讲起,以后还会有Layer、Transitioning等在内的动画,希望本文能抛砖引玉,带给大家不一样的理解,下面
春哥大魔王
2018/04/17
1.7K0
iOS 开发从 UIView 动画说起
【IOS开发基础系列】UIView专题
https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/CreatingViews/CreatingViews.html
江中散人_Jun
2023/10/16
7500
【IOS开发基础系列】UIView专题
禁用iOS的UIView长按默认操作
很多时候需要禁用移动设备的默认行为,比如长按一个a链接的按钮(href写的是javascript:;)会提示是否打开/取消。而-webkit-touch-callout 在ios8中是失效的,查资料说是一个bug。还有另外一种做法就是设置pointer-events:none;不过这个属性太狠了,会导致页面的tap等事情都失效。
meteoric
2018/11/19
1.1K0
UIVIew中center,bounds和frame的含义
frame - this is the property you most often use for normal iPhone applications. most controls will be laid out relative to the “containing” control so the frame.origin will directly correspond to where the control needs to display, and frame.size will determine how big to make the control.
EltonZheng
2021/01/22
5120
iOS开发~UIView layer 之前的关系
要使用 Quartz Core 框架,你需要将其添加到你的工程中 。 然后 #import
编程怪才-凌雨画
2020/09/18
1.2K0
iOS 根据UIView获取所在的UIViewController
本文将讲述在iOS开发中如何根据某个UIView来获取所属的UIViewController
赵哥窟
2018/09/13
2.5K0
iOS 根据UIView获取所在的UIViewController
UIView中frame属性的内部实现
UIView中用于表征视图在父视图中显示出来的位置和尺寸的属性是frame。 同时系统还提供另外两个属性center和bounds。其中center属性值描述视图的中心点在父视图中的位置,而bounds属性的size部分则描述视图本身固有的尺寸。需要注意的是bounds属性中的origin部分描述的是视图内部坐标系中原点的位置,它影响着里面子视图的位置。除此之外,系统还提供一个transform属性来实现视图的仿射变换: 比如平移、缩放、旋转、倾斜的效果。
欧阳大哥2013
2019/07/02
1.5K0
UIView中frame属性的内部实现

相似问题

Swift:移动UIView

11

移动UIView / UIBezierPath

10

移动UIView问题

22

减速移动UIView

32

在父UIView中移动UIView (UIPanGestureRecognizer)

50
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文