天天看點

C# SMTP郵件發送

郵件發送在網站應用程式中經常會用到,包括您現在看到的部落格,在添加評論後,系統會自動發送郵件通知到我郵箱的,把系統發送郵件的功能整理了下,做了一個用戶端demo,希望對有需要的童鞋有所幫助:

C# SMTP郵件發送

核心代碼:

<code>001</code>

<code>using</code> <code>system;</code>

<code>002</code>

<code>using</code> <code>system.net;</code>

<code>003</code>

<code>using</code> <code>system.net.mail;</code>

<code>004</code>

<code>using</code> <code>system.text;</code>

<code>005</code>

<code>006</code>

<code>namespace</code> <code>hc.email</code>

<code>007</code>

<code>{</code>

<code>008</code>

<code>    </code><code>/// &lt;summary&gt;</code>

<code>009</code>

<code>    </code><code>///     整站郵件服務類</code>

<code>010</code>

<code>    </code><code>/// &lt;/summary&gt;</code>

<code>011</code>

<code>    </code><code>public</code> <code>class</code> <code>emailservice</code>

<code>012</code>

<code>    </code><code>{</code>

<code>013</code>

<code>        </code><code>/// &lt;summary&gt;</code>

<code>014</code>

<code>        </code><code>///     發送郵件</code>

<code>015</code>

<code>        </code><code>/// &lt;/summary&gt;</code>

<code>016</code>

<code>        </code><code>/// &lt;param name="mailto"&gt;收件人</code>

<code>017</code>

<code>        </code><code>/// &lt;param name="subject"&gt;主題</code>

<code>018</code>

<code>        </code><code>/// &lt;param name="body"&gt;内容</code>

<code>019</code>

<code>        </code><code>/// &lt;returns&gt;&lt;/returns&gt;</code>

<code>020</code>

<code>        </code><code>public</code> <code>static</code> <code>bool</code> <code>send(</code><code>string</code> <code>mailto, </code><code>string</code> <code>subject, </code><code>string</code> <code>body)</code>

<code>021</code>

<code>        </code><code>{</code>

<code>022</code>

<code>            </code><code>return</code> <code>send(</code><code>new</code><code>[] {mailto}, </code><code>null</code><code>, subject, body, </code><code>true</code><code>, </code><code>null</code><code>);</code>

<code>023</code>

<code>        </code><code>}</code>

<code>024</code>

<code>025</code>

<code>026</code>

<code>027</code>

<code>028</code>

<code>029</code>

<code>030</code>

<code>031</code>

<code>032</code>

<code>        </code><code>public</code> <code>static</code> <code>bool</code> <code>send(</code><code>string</code><code>[] mailto, </code><code>string</code> <code>subject, </code><code>string</code> <code>body)</code>

<code>033</code>

<code>034</code>

<code>            </code><code>return</code> <code>send(mailto, </code><code>null</code><code>, subject, body, </code><code>true</code><code>, </code><code>null</code><code>);</code>

<code>035</code>

<code>036</code>

<code>037</code>

<code>038</code>

<code>039</code>

<code>040</code>

<code>041</code>

<code>042</code>

<code>043</code>

<code>        </code><code>/// &lt;param name="attachmentspath"&gt;附件</code>

<code>044</code>

<code>045</code>

<code>        </code><code>public</code> <code>static</code> <code>bool</code> <code>send(</code><code>string</code><code>[] mailto, </code><code>string</code> <code>subject, </code><code>string</code> <code>body, </code><code>string</code><code>[] attachmentspath)</code>

<code>046</code>

<code>047</code>

<code>            </code><code>return</code> <code>send(mailto, </code><code>null</code><code>, subject, body, </code><code>true</code><code>, attachmentspath);</code>

<code>048</code>

<code>049</code>

<code>050</code>

<code>051</code>

<code>052</code>

<code>053</code>

<code>054</code>

<code>055</code>

<code>        </code><code>/// &lt;param name="mailccarray"&gt;抄送</code>

<code>056</code>

<code>057</code>

<code>058</code>

<code>        </code><code>/// &lt;param name="isbodyhtml"&gt;是否html</code>

<code>059</code>

<code>060</code>

<code>061</code>

<code>        </code><code>public</code> <code>static</code> <code>bool</code> <code>send(</code><code>string</code><code>[] mailto, </code><code>string</code><code>[] mailccarray, </code><code>string</code> <code>subject,</code><code>string</code> <code>body, </code><code>bool</code> <code>isbodyhtml,</code>

<code>062</code>

<code>                                </code><code>string</code><code>[] attachmentspath)</code>

<code>063</code>

<code>064</code>

<code>            </code><code>try</code>

<code>065</code>

<code>            </code><code>{</code>

<code>066</code>

<code>                </code><code>var config = confighelper.getconfig&lt;emailconfig&gt;();</code>

<code>067</code>

<code>                </code><code>if</code> <code>(</code><code>string</code><code>.isnullorempty(config.host) ||</code><code>string</code><code>.isnullorempty(config.username) ||</code>

<code>068</code>

<code>                    </code><code>string</code><code>.isnullorempty(config.port) ||</code><code>string</code><code>.isnullorempty(config.password))</code>

<code>069</code>

<code>                </code><code>{</code>

<code>070</code>

<code>                    </code><code>//todo:記錄日志</code>

<code>071</code>

<code>                    </code><code>return</code> <code>false</code><code>;</code>

<code>072</code>

<code>                </code><code>}</code>

<code>073</code>

<code>                </code><code>var @from = </code><code>new</code> <code>mailaddress(config.mailfrom); </code><code>//使用指定的郵件位址初始化mailaddress執行個體</code>

<code>074</code>

<code>                </code><code>var message = </code><code>new</code> <code>mailmessage(); </code><code>//初始化mailmessage執行個體</code>

<code>075</code>

<code>                </code><code>//向收件人位址集合添加郵件位址</code>

<code>076</code>

<code>                </code><code>if</code> <code>(mailto != </code><code>null</code><code>)</code>

<code>077</code>

<code>078</code>

<code>                    </code><code>foreach</code> <code>(</code><code>string</code> <code>t </code><code>in</code> <code>mailto)</code>

<code>079</code>

<code>                    </code><code>{</code>

<code>080</code>

<code>                        </code><code>message.to.add(t);</code>

<code>081</code>

<code>                    </code><code>}</code>

<code>082</code>

<code>083</code>

<code>084</code>

<code>                </code><code>//向抄送收件人位址集合添加郵件位址</code>

<code>085</code>

<code>                </code><code>if</code> <code>(mailccarray != </code><code>null</code><code>)</code>

<code>086</code>

<code>087</code>

<code>                    </code><code>foreach</code> <code>(</code><code>string</code> <code>t </code><code>in</code> <code>mailccarray)</code>

<code>088</code>

<code>089</code>

<code>                        </code><code>message.cc.add(t);</code>

<code>090</code>

<code>091</code>

<code>092</code>

<code>                </code><code>//發件人位址</code>

<code>093</code>

<code>                </code><code>message.from = @from;</code>

<code>094</code>

<code>095</code>

<code>                </code><code>//電子郵件的标題</code>

<code>096</code>

<code>                </code><code>message.subject = subject;</code>

<code>097</code>

<code>098</code>

<code>                </code><code>//電子郵件的主題内容使用的編碼</code>

<code>099</code>

<code>                </code><code>message.subjectencoding = encoding.utf8;</code>

<code>100</code>

<code>101</code>

<code>                </code><code>//電子郵件正文</code>

<code>102</code>

<code>                </code><code>message.body = body;</code>

<code>103</code>

<code>104</code>

<code>                </code><code>//電子郵件正文的編碼</code>

<code>105</code>

<code>                </code><code>message.bodyencoding = encoding.default;</code>

<code>106</code>

<code>                </code><code>message.priority = mailpriority.high;</code>

<code>107</code>

<code>                </code><code>message.isbodyhtml = isbodyhtml;</code>

<code>108</code>

<code>109</code>

<code>                </code><code>//在有附件的情況下添加附件</code>

<code>110</code>

<code>                </code><code>if</code> <code>(attachmentspath != </code><code>null</code> <code>&amp;&amp; attachmentspath.length &gt; 0)</code>

<code>111</code>

<code>112</code>

<code>                    </code><code>foreach</code> <code>(</code><code>string</code> <code>path </code><code>in</code> <code>attachmentspath)</code>

<code>113</code>

<code>114</code>

<code>                        </code><code>var attachfile = </code><code>new</code> <code>attachment(path);</code>

<code>115</code>

<code>                        </code><code>message.attachments.add(attachfile);</code>

<code>116</code>

<code>117</code>

<code>118</code>

<code>                </code><code>try</code>

<code>119</code>

<code>120</code>

<code>                    </code><code>var smtp = </code><code>new</code> <code>smtpclient</code>

<code>121</code>

<code>                        </code><code>{</code>

<code>122</code>

<code>                            </code><code>credentials = </code><code>new</code> <code>networkcredential(config.username, config.password),</code>

<code>123</code>

<code>                            </code><code>host = config.host,</code>

<code>124</code>

<code>                            </code><code>port = convert.toint32(config.port)</code>

<code>125</code>

<code>                        </code><code>};</code>

<code>126</code>

<code>127</code>

<code>                    </code><code>//将郵件發送到smtp郵件伺服器</code>

<code>128</code>

<code>                    </code><code>smtp.send(message);</code>

<code>129</code>

<code>130</code>

<code>                    </code><code>return</code> <code>true</code><code>;</code>

<code>131</code>

<code>132</code>

<code>                </code><code>catch</code> <code>(smtpexception ex)</code>

<code>133</code>

<code>134</code>

<code>135</code>

<code>136</code>

<code>137</code>

<code>            </code><code>}</code>

<code>138</code>

<code>            </code><code>catch</code> <code>(smtpexception ex)</code>

<code>139</code>

<code>140</code>

<code>                </code><code>//todo:記錄日志</code>

<code>141</code>

<code>                </code><code>return</code> <code>false</code><code>;</code>

<code>142</code>

<code>143</code>

<code>144</code>

<code>    </code><code>}</code>

<code>145</code>

<code>}</code>

源代碼下載下傳