C# 如何配置公司邮箱发送邮件配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 如何配置公司邮箱发送邮件配置相关的知识,希望对你有一定的参考价值。

首先要有自己的信箱,因为现在一般都要验证,所以要有用户名和密码,比如可以在163网易申请一个邮箱,然后用smtp

有个源码,你可以参考下
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;

namespace SendMail

/// <summary>
/// 发送邮件类 的摘要说明
/// </summary>
class SendMail

#region 数据成员
//收件人地址
private string m_To = "";
//发件人地址
private string m_From = "";
//邮件标题
private string m_Subject = "";
//邮件正文
private string m_Body = "";
//发送服务器名或地址
private string m_Host = "";
//发件人用户名
private string m_UserName = "";
//发件人密码
private string m_Password = "";
//邮件附件
private string m_File = "";
#endregion

#region 构造函数
/// <summary>
/// 构造函数重载
/// </summary>
/// <param name="to">收件人地址(多人请用,分隔)</param>
/// <param name="from">发件人地址</param>
/// <param name="subject">邮件标题</param>
/// <param name="body">邮件正文</param>
/// <param name="host">发送邮件服务器名或地址</param>
/// <param name="userName">发件人用户名</param>
/// <param name="password">发件人密码</param>
/// <param name="fileName">附件(多附件请用;分隔,单个附件请不要超过20M)</param>

public SendMail(string to, string from, string subject, string body, string host, string userName, string password, string fileName)

m_To = to;
m_From = from;
m_Subject = subject;
m_Body = body;
m_Host = host;
m_UserName = userName;
m_Password = password;
m_File = fileName;

#endregion

#region 数据属性
//收件人地址
public string TO

get

return m_To;

set

m_To = value;



//发件人地址
public string From

get

return m_From;

set

m_From = value;



//邮件标题
public string Subject

get

return m_Subject;

set

m_Subject = value;



//邮件正文
public string Body

get

return m_Body;

set

m_Body = value;



//服务器地址(名)
public string Host

get

return m_Host;

set

m_Host = value;



//发件人的用户名
public string UserName

get

return m_UserName;

set

m_UserName = value;



//发件人的密码
public string Password

get

return m_Password;

set

m_Password = value;



//邮件附件
public string File

get

return m_File;

set

m_File = value;


#endregion

/**/
/// <summary>
/// 发送邮件
/// </summary>
/// <returns>发送是否成功</returns>
public bool Send()

try

//获取所有的收件人地址
char[] ch = \',\' ;
string[] address = m_To.Split(ch);
MailAddressCollection allAddress = new MailAddressCollection();
for (int i = 0; i < address.Length; i++)

//收件人地址
MailAddress toAddress = new MailAddress(address[i]);
allAddress.Add(toAddress);

//发件人地址
MailAddress fromAddress = new MailAddress(m_From);

//定义邮件消息
MailMessage msg = new MailMessage(fromAddress, toAddress);
//邮件标题
msg.Subject = m_Subject;
//邮件正文
msg.Body = m_Body;

//获取所有邮件附件
char[] cr = \';\' ;
string[] file = m_File.Split(cr);
for (int n = 0; n < file.Length; n++)

if (file[n] != "")

//附件对象
Attachment data = new Attachment(file[n], MediaTypeNames.Application.Octet);
//附件资料
ContentDisposition disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file[n]);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file[n]);
disposition.ReadDate = System.IO.File.GetLastAccessTime(file[n]);
//加入邮件附件
msg.Attachments.Add(data);



//使用简单邮件传输协议来传送邮件
SmtpClient sendMail = new SmtpClient();
//发送邮件的服务器名或地址
sendMail.Host = m_Host;
//验证发件人的身份
sendMail.Credentials = new NetworkCredential(m_UserName, m_Password);
//处理待发送邮件的方法
sendMail.DeliveryMethod = SmtpDeliveryMethod.Network;

//发送邮件
sendMail.Send(msg);

return true;

catch (Exception ex)

return false;



参考技术A 使用javamail就可以了啊,下一个javamail照着它的例子就可以很快的完成设置了,简单易用 参考技术B http://blog.sina.com.cn/s/blog_72b7a82d0100yfi4.html
看看这个,有不明白的再说
参考技术C 采纳了再来找我。

C# 如何从 Outlook 的共享邮箱发送邮件并将其保存在已发送文件夹中

【中文标题】C# 如何从 Outlook 的共享邮箱发送邮件并将其保存在已发送文件夹中【英文标题】:C# How to send mail from Outlook's Shared Mailbox and keep it in Sent folder there 【发布时间】:2019-11-25 16:02:24 【问题描述】:

我知道如何通过 Office.Interop 通过 Outlook 中的共享邮箱以编程方式发送邮件。 但是我发送的邮件仍然存储在我的个人已发送邮件文件夹中(而不是共享邮箱的已发送邮件)。 所以其他人看不到发送了什么。它还消耗我的邮箱大小配额...

有没有办法通过共享邮箱发送邮件并将已发送的项目保存在那里? 如果不是(那么容易)至少从我的已发送邮件文件夹顶部共享邮箱复制已发送邮件?

* 编辑 *

以下是我当前的代码:

Application     app         = new Application();
MailItem        mailItem    = app.CreateItem(OlItemType.olMailItem);

mailItem.Subject        = subject;
mailItem.To             = to;           
mailItem.SentOnBehalfOfName = fromMail;


// Send
mailItem.Send();

【问题讨论】:

您是否尝试过使用 SentOnBehalfOf 或 SendUsingAccount? 见下文:social.msdn.microsoft.com/Forums/office/en-US/… 我正在使用 SentOnBehalfOf 。从未尝试过 SendUsingAccount。会检查的!谢谢 【参考方案1】:

您只需要设置MailItem.SaveSentMessageFolder 属性,该属性设置一个Folder 对象,该对象表示发送后将保存电子邮件副本的文件夹。

请注意,该文件夹应显示在您的商店中。如果您需要移动已发送的项目,我建议您处理文件夹上的ItemAdd 事件(默认为Sent Items)并通过调用Move 方法以编程方式移动项目。

【讨论】:

谢谢尤金 - 这就是我要找的东西!

以上是关于C# 如何配置公司邮箱发送邮件配置的主要内容,如果未能解决你的问题,请参考以下文章

springboot用163邮箱、阿里云企业邮箱发送邮件的配置

abap 给用户发送邮件或消息(系统内)

C#发送邮件

Linux配置163邮箱发送邮件

CentOS配置mailx通过465端口发送qq邮件

python -- 简单配置发送邮件功能