vs.net发送邮件(2.0)
元アドレス:http://www.atmarkit.co.jp/fdotnet/dotnettips/457sendmail2/sendmail2.html
.NET TIPS .NET Framework 2.0で電子メールを送信するには?[2.0のみ、C#、VB]デジタルアドバンテージ 一色 政彦 |
![]() |
|
「TIPS:電子メールを送信するには?」では、SmtpMailクラス(System.Web.Mail名前空間)を使ってメールを送信する方法を紹介している。しかし、このSmtpMailクラスは.NET Framework 2.0ではObsoleteされてしまっており、以前に作成されたコードを動作させるための互換性目的で残されているだけだ。
.NET Framework 2.0ではこの代わりに、System.Net.Mail名前空間が追加されており、これに所属するクラス群(具体的には、メールを送信する機能を提供するSmtpClientクラスなど)を利用することが推奨されている。
そこで本稿では、SmtpClientクラスを用いて電子メールを送信する最もシンプルな方法を紹介する。
SmtpClientクラスを用いてメールを送信する方法
SmtpClientクラスを用いて電子メールを送信するのに最低限必要となるのは、次の5つの情報である。
- SMTPサーバ名(電子メールの送信を行うSMTPサーバの名前)
- Fromアドレス(送信者のメール・アドレス)
- Toアドレス(受信者のメール・アドレス)
- 件名(いわゆる“Subject”)
- 本文
これらの情報を次のコード例のように指定して、プログラムを実行すれば、メールを送信できる。
|
||
SmtpClientクラスにより最もシンプルにメールを送信する方法(上:C#、下:VB) | ||
SMTPサーバ名を文字列でSmtpClientクラスのコンストラクタに指定し、Fromアドレス、Toアドレス、件名、本文といった情報を文字列でSmtpClientオブジェクトのSendメソッドのパラメータに指定する。 |
上記のコードを簡単に解説すると、SmtpClientクラスのコンストラクタのパラメータに文字列で「SMTPサーバ名」を指定し、残りの情報(Fromアドレス、Toアドレス、件名、本文)をSendメソッドの各パラメータに指定している。たったこれだけの記述でメールを送信することができる。
SMTPサーバのポート番号が通常(つまり「25」)と異なる場合は、次のコードの例のように、SmtpClientクラスのコンストラクタの第2パラメータにその番号を指定すればよい。
|
||
25番以外のポート番号の指定方法(上:C#、下:VB) | ||
SmtpClientクラスのコンストラクタの第2パラメータにポート番号を指定できる。 |
なお以上の例では、SmtpClientクラスのコンストラクタにSMTPサーバ名とポート番号を指定する方法を紹介したが、これらは次のプロパティから設定・取得することも可能だ。
- SMTPサーバ名:SmtpClientオブジェクトのHostプロパティ
- ポート番号:SmtpClientオブジェクトのPortプロパティ
本稿で紹介したSendメソッドは同期処理を行うため、SMTPサーバへの接続が完了するか、(接続に失敗して)タイムアウトするまで処理が戻ってこない。これが問題となる場合には、非同期処理を行うSendAsyncメソッドを使う必要があるが、これについては後日公開する別のTIPSで紹介する。
なお、SMTPサーバへの接続タイムアウト時間は既定で100秒(100000ミリ秒)となっているが、次のプロパティにより変更することもできる(ミリ秒単位で指定)。
- 接続タイムアウト:SmtpClientオブジェクトのTimeoutプロパティ
ここで紹介したSmtpClientクラスの使い方は最もシンプルなものだが、CC(カーボン・コピー)やBCC(ブラインド・カーボン・コピー)などに追加のメール・アドレスを指定したり、添付ファイルを追加したりして電子メールを送信することも可能だ。また、SMTPサーバへのアクセスでユーザー名とパスワードによる認証を行ったり、SSL(Secure Sockets Layer)接続を行ったりすることもできる。これらについては後日公開予定のTIPSで紹介する。
vs.net发送邮件(2.0)相关推荐
- 利用smtplib和email实现SMTP发送邮件 V2.0
将之前利用smtplib和email实现SMTP发送邮件小程序进行重构. 发现了email.mime.multipart类两个使用上的小问题: MIMEMultipart类要修改参数,不能直接使用赋值 ...
- SpringBoot2.0基础案例分类总结,后续更新计划说明
一.基础案例 1.基础案例概览 历时一个半月,SpringBoot2.0基础案例的文章基本更新完毕了,基础案例包含了SpringBoot的基础教程,高级应用,日志配置,数据库使用,事务管理等.关于Sp ...
- jenkins + jmeter +ant 发送邮件失败
阿菠萝阿瑶 </div><!--end: blogTitle 博客的标题和副标题 --> <div id="navigator"> 博客园 首页 ...
- 估算带卷积核二分类0,3的网络的收敛时间和迭代次数
制作一个网络分类minst的0和3求出这网络的迭代次数曲线表达式n(δ),和准确率表达式p-max(δ),用预期准确率去估算n,并推算需要的时间. 将minst的28*28的图片缩小到9*9,网络用一 ...
- 自动化测试框架搭建-邮件-5
在前面生成自动化框架中讲解了一步步生成日志,报告.生成测试报告之后需要提交给他人查看,自然需要用到右键发送的功能,这里学习一下smtplib 和 email 库. 在utils中创建mail.py,初 ...
- 用python发送email
#coding:utf-8from email.header import Headerfrom email.mime.text import MIMETextfrom email.utils imp ...
- 聚宽JQData说明书
由于内容较多,可使用Ctrl+F搜索您需要的数据. 注意:query函数的更多用法详见:sqlalchemy.orm.query.Query对象 JQData是什么 JQData是聚宽数据团队专门为金 ...
- 仿牛客网项目第二章:开发社区登录模块(详细步骤和思路)
目录 1. 发送邮件 1.0 三步走 1.1 邮箱设置 1.2 Spring Email 1.3 模板引擎 1.4 发送邮件的过程 1.5 检验发送邮件的过程 2. 开发注册功能 2.0 注册功能的步 ...
- Linux学习 邮件
邮件 一.先做DNS解析 (1)第一台主机 1.hostnamectl set-hostname westos.mail.com systemctl stop firewalld 配置ip为17 ...
- 再来IOS开发小知识点总结
一.获取当前日期和星期 // get the current date NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [d ...
最新文章
- linux中sort命令实例,Linux中文本处理工具之sort命令详解
- 为什么要打jar_生活在西北的兰州人过春节为什么要打太平鼓?
- 单一docker主机网络
- 鸿蒙系统明年上市巧,鸿蒙系统官网下载-鸿蒙系统官网下载手机版 v2.0下载-955游戏网...
- Validation-jQuery表单验证插件使用方法
- neo4j——图数据库初探 - JDream314的专栏 - 博客频道 - CSDN.NET
- 【干货】2014年值得仔细研究的十大神级文案
- 1027:输出浮点数
- python渲染html 库_在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
- 机器学习——常用算法的总结
- utf8 和utf8mb4 的区别
- Exchange Server 2016体验
- 基于php技术的毕业设计管理系统的研究与实现,基于PHP的图书管理系统设计与实现毕业论文.DOC...
- 计算机房等电位接地规范,一个实例全面讲解机房如何做防雷接地?
- 聊一聊,android程序员前景如何
- 几款在线脑图制作工具
- 译: 进化的系统需要进化的系统工程
- python爬取B站视频弹幕分析并制作词云
- 天啦撸!打印日志竟然只晓得 Log4j?
- 最新!Xmind2020安装教程