2010-03-03 65 views
1

我必須發送電子郵件給幾百個用戶。每個人都有一個適合收件人的鏈接,所以我需要在腳本/代碼中生成電子郵件 - 我不是Notes開發人員,所以我不能在Notes中這樣做;我正在使用C#,並將列表從SQL數據庫中提取出來。如何在郵件中嵌入鏈接按鈕以發送到Notes客戶端?

有一些限制:

  • ,該鏈接指向使用集成Windows身份驗證的網站。
  • 發件人希望鏈接是一個按鈕,而不是文本。
  • 絕大多數收件人正在運行的Lotus Notes 7

我試圖創建一個HTML郵件,但有問題:

  • 如果我使用一個形式提交按鈕和action指向鏈接,Notes嘗試使用其內部瀏覽器失敗(因爲該站點使用集成Windows身份驗證)。

  • 如果我在其中使用帶有img標籤的href標籤,指向Web服務器上的圖像,Notes拒絕顯示圖像 - 即使標籤在嵌入時是有效的,我也只是獲得紅色x框。在網頁上。

任何人都知道我該怎麼做?

回答

1

我終於找到一個可行的方法:嵌入圖像在電子郵件本身。我找到了解決方案here。以防萬一,我會在這裏包括關鍵的東西。

有三個關鍵組件來電子郵件:純文本版本,HTML版本和圖像,所有consructed爲AlternateViews:

string imagePath = @"C:\Work\images\clickhere.jpg"; 
AlternateView imageView = new AlternateView(imagePath, MediaTypeNames.Image.Jpeg); 
imageView.ContentId = "uniqueId"; 
imageView.TransferEncoding = TransferEncoding.Base64; 
    : 
//loop to generate the url and send the emails containing 
    AlternateView plainTextView = AlternateView.CreateAlternateViewFromString(
     BuildPlainTextMessage(url), null, "text/plain"); 
    AlternateView htmlView = AlternateView.CreateAlternateViewFromString(
     BuildHtmlMessage(url), null, "text/html"); 
    //set up MailAddress objects called to and from 
     : 
    MailMessage mail = new MailMessage(from, to); 
    mail.Subject = "ACTION REQUIRED: Do this by then or else"; 
    mail.AlternateViews.Add(plainTextView); 
    mail.AlternateViews.Add(htmlView); 
    mail.AlternateViews.Add(imageView); 
    //send mail using SmtpClient as normal 
     : 
//endloop 

BuildHtmlMessage(串)和BuildPlainTextMessage(串)剛剛返回包含字符串消息。 BuildHtmlMessage包括這個在'url'鏈接中顯示圖像:

sb.AppendLine("<div>"); 
sb.AppendFormat("<a href=\"{0}\" target=\"_blank\">", url); 
sb.Append("<img alt=\"Click here button image\" hspace=0 src=\"cid:uniqueId\" "); 
sb.Append("align=baseline border=0 >"); 
sb.Append("</a>"); 
sb.AppendLine("</div>"); 

希望這對其他人有用。

0

我想不管你用什麼樣的鏈接(按鈕,文本),你會碰上在Notes客戶機啓動其內部的瀏覽器,同樣的問題。這是Notes客戶機的首選項,並且在所有機器上可能不同。

我第一次嘗試一個標準的文本鏈接,看它是否具有相同的行爲。也許如果這確實起作用,那麼你至少可以提供一種解決方法。

關於圖像的問題 - 在像使用Windows身份驗證服務器來嗎?確保圖片是向公衆開放的,不需要身份驗證,看看它(測試在Firefox中,如果你沒有得到一個密碼提示,你是安全的)

我討厭這樣說,但您可能需要請求用戶將其電子郵件中的URL複製到特定瀏覽器。至少你會知道這會起作用。

+0

感謝您的答覆。我曾經犯過把圖像放在AuthN網站上的錯誤,但我已經將它移到了另一個只有匿名訪問的網站。不過,我會在Firefox中檢查它。我還試着用標準鏈接的電子郵件 - 我只是直接在電子郵件地址,並允許Notes轉換爲鏈接,它的工作,打開我的機器上的IE瀏覽器。 – serialhobbyist 2010-03-04 08:07:29

0

我肯同意偏愛內部瀏覽器。不顯示圖像 - 顯示紅色x - 也可能是首選項。我不記得它是否可用於R7,但在R8中,有一種偏好不會自動顯示遠程圖像。這是一項安全功能。它也可能是一個代理髮行 - 如果他們必須登錄到他們的互聯網代理服務器才能到互聯網,你的形象在互聯網上...

+0

一切都是內在的,所以代理服務器不應該成爲一個問題,除非有錯誤的配置 - 值得一試。我也會檢查遠程圖像的想法。 – serialhobbyist 2010-03-04 08:08:58

0

也有這一點,但它觸發掀起了安全警告用戶與我的注意配置:

<input type='button' 
     onclick=document.location.href='http://server/path'; 
     value='Click here' 
     id='buttonID' class='button' 
     xstyle='background-color:red;color:white;'/> 
相關問題