作为大公司的程序员,我经常发送包含代码示例的Outlook电子邮件.
我实际上会直接在电子邮件中输入代码.这不可避免地导致问题,因为Outlook真的喜欢以令人愉快但无益的方式格式化文本.我的代码需要可以从电子邮件中复制并直接复制到代码中,因此我不希望Outlook通过添加特殊字符或诸如此类的东西来搞乱它.
所以我总是需要调整以下选项:
我也喜欢我的代码是等宽字体,黑色,缩进,比其他文本小. 我试图为此制作一个Style,但由于某种原因,Style永远不会保存.:-( [编辑:结果我没有告诉它工作"基于这个模板的新文件"]
有没有办法将代码放在<pre>块或者某些东西中,告诉Outlook忽略所有这些规则并按照我想要的方式格式化代码?如果没有,你有什么方法可以在Outlook电子邮件中发送代码片段,而不会让它变得非常烦人?
无法在mailto链接中使多行正常工作
在我的情况下,我正在使用Outlook默认邮件阅读器进行测试.
以下是一个锚点href:
mailto:email@address.com?&subject=test&body=type%20your&body=message%20here
只有"此处的消息"显示在电子邮件正文中.(我是否使用chrome或IE)
想法?
我正在使用dotnet框架发送电子邮件.这是我用来创建消息的模板:
Date of Hire: %HireDate%
Annual Salary: %AnnualIncome%
Reason for Request: %ReasonForRequest%
Name of Voluntary Employee: %FirstName% %LastName%
Total Coverage Applied For: %EECoverageAmount%
Guaranteed Coverage Portion: %GICoveragePortion%
Amount Subject to Medical Evident: %GIOverage%
Run Code Online (Sandbox Code Playgroud)
在Outlook中收到消息时,outlook告诉我"此消息中的额外换行符已被删除".消息显示如下:
Date of Hire: 9/28/2001
Annual Salary: $100,000
Reason for Request: New Hire
Name of Voluntary Employee: Ronald Weasley Total Coverage Applied For: $500,000 Guaranteed Coverage Portion: $300,000.00 Amount Subject to Medical Evident: $200,000
Run Code Online (Sandbox Code Playgroud)
请注意Outlook如何在名称,EECoverageAmount等之后错误地删除所需的换行符...
对于电子邮件接收者来说,获取格式正确的电子邮件非常重要,我必须假设其中一些使用outlook 2003.我也不能假设他们知道足以关闭autoclean功能以使消息正确格式化.
我在其他邮件客户端中查看了这些邮件并正确显示
更多信息:
问题:如何更改邮件格式以避免此问题?
使用codeproject中提供的示例,我正在努力找到我可以在哪里找到对库Microsoft.Office.Core的引用.
我收到错误"无法找到引用的组件'Microsoft.Office.Core'."
我只在这个系统上安装了Office 2007企业版和Outlook 2003.这可能是原因吗?否则我应该引用哪个特定的dll?
我们正在编写一个MS Outlook插件.为了满足我们的业务逻辑,它应检查某些日期之间的所有约会.从日历中检索所有项目时遇到了一些问题.我们尝试了两种选择:
Outlook API.我们使用MSDN中描述的标准逻辑 - 按[开始]对项目进行排序,设置IncludeRecurrences
为True
日历项目并在此处运行Find\Restrict查询.它在我们的测试环境中工作正常.但是,在我们客户的环境中:对于定期约会,开始和结束日期设置为"主约会"的相应日期.例如,在某个房间的日历中,我们有一个在1月创建的每周约会,如果我们试图在8月找到所有项目,我们会获得此定期约会的四个项目,但其开始和结束日期设置为1月.但Outlook在同一日历中显示正确的日期...
很糟糕,但我们还有WebDAV!我们编写一个简单的测试应用程序,并尝试使用WebDAV查询日历中的所有项目.当然,我们没有重新发明轮子,只是粘贴了文档中的代码.之前的问题已经解决,但下一个问题出现了:它不会返回大约六个月前创建的重复项目.我没有线索 - 没有限制'旧'项目的参数!
怎么了?我们缺少重要的东西吗?
技术细节:Exchange 2003,Outlook 2003-2010.坦率地说,如果我们打开缓存Exchange模式,第一个错误就会消失,但我们不能这样做.
var nameSpace = application.GetNamespace("MAPI");
var recepient = nameSpace.CreateRecipient(roomEMail);
recepient.Resolve();
var calendar = nameSpace.GetSharedDefaultFolder(recepient, OlDefaultFolders.olFolderCalendar);
var filter = string.Format("[Start]<'{1}' AND [End]>'{0}'",
dateFrom.ToString("dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture), dateTo.ToString("dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture)
);
var allItems = calendar.Items;
allItems.Sort("[Start]");
allItems.IncludeRecurrences = true;
var _item = allItems.Find(filter);
while (_item != null) {
AppointmentItem item = _item as AppointmentItem;
if (item != null) {
if (item.Subject != "some …
Run Code Online (Sandbox Code Playgroud) 我正在尝试用Java发送电子邮件,但当我在Outlook中阅读电子邮件的正文时,它已经摆脱了我的所有换行符.我把\n放在了行的末尾但除了那之外我还需要做些什么吗?接收器总是使用Outlook.
我在microsoft.com上发现了一个页面,其中显示Outlook中有一个"删除换行符""功能",这是否意味着除了取消检查该设置之外,没有其他方法可以解决这个问题?
谢谢
是否可以使用C#读取.PST文件?我想将此作为一个独立的应用程序,而不是作为Outlook插件(如果可能的话).
如果已经看到类似于提及MailNavigator的其他 SO 问题 ,但我希望在C#中以编程方式执行此操作.
我查看了Microsoft.Office.Interop.Outlook命名空间,但它似乎只适用于Outlook插件.LibPST似乎能够读取PST文件,但这是在C中(对不起Joel,我毕业前没有学过C).
任何帮助将不胜感激,谢谢!
编辑:
谢谢大家的回复!我接受了Matthew Ruston的回答作为答案,因为它最终导致我找到了我正在寻找的代码.这是我工作的一个简单示例(您需要添加对Microsoft.Office.Interop.Outlook的引用):
using System;
using System.Collections.Generic;
using Microsoft.Office.Interop.Outlook;
namespace PSTReader {
class Program {
static void Main () {
try {
IEnumerable<MailItem> mailItems = readPst(@"C:\temp\PST\Test.pst", "Test PST");
foreach (MailItem mailItem in mailItems) {
Console.WriteLine(mailItem.SenderName + " - " + mailItem.Subject);
}
} catch (System.Exception ex) {
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
private static IEnumerable<MailItem> readPst(string pstFilePath, string pstName) {
List<MailItem> mailItems …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个服务器的自定义实现(非常基本的WebDAV),它接受Outlook发布的日历.
Outlook似乎有一个设置(参见下面的屏幕截图),它接受服务器的参数,告诉它重新发布日历的频率,这是我想要弄清楚的参数.
如果设置未指定的Outlook默认到60分钟,这不为我工作,但我找不到什么参数可以是任何信息(我知道,Outlook的设置可以在UI内进行调整,但我需要它通过自动完成来自服务器的响应).使用Wireshark时,我发现当第一次发布日历时,Outlook会向PROPFIND
服务器的URL 发送一个方法:
PROPFIND /path/to/url HTTP/1.1
X-Office-Version: 15.0.4771
Depth: 1
Content-Type: text/xml
User-Agent: Microsoft Office/15.0 (Windows NT 6.3; Microsoft Outlook 15.0.4771; Pro)
Host: example.com
Content-Length: 114
Connection: Keep-Alive
Cache-Control: no-cache
<?xml version="1.0" encoding="utf-8" ?> <D:propfind xmlns:D="DAV:"><D:prop><D:resourcetype/></D:prop></D:propfind>
Run Code Online (Sandbox Code Playgroud)
然后用XML响应(我假设这是设置的位置,但无法找到任何信息):
<?xml version="1.0"?><a:multistatus xmlns:a="DAV:"/>
Run Code Online (Sandbox Code Playgroud)
我在这一点上丢失,不知道还有什么地方寻找大量的谷歌搜索和流量嗅探后(展望< - >我发现交流沟通,但没有人可以使用非默认PARAM).任何建议在哪里寻找这样的东西都是个好主意?
我在html内容中有以下dom结构,我将其作为电子邮件发送.
<a href="http://content.mindmatrix.net/email/814xjqjmpj5r/b59tqx7tzz2x7"
target="_new">
<span style='text-decoration:none;text-underline:none'>
<img border=0 id="_x0000_i1026"
src="http://dev.mindmatrix.net/page/e7c9cf53-bae8-4024-a561-355f950cb26b/635246986810000000/original.jpeg?userid=cozmwz91irkm1"
style='border-bottom-color:black;border-bottom-style:solid;border-bottom-width:
1px;border-left-color:black;border-left-style:solid;border-left-width:1px;
border-right-color:black;border-right-style:solid;border-right-width:1px;
border-top-color:black;border-top-style:solid;border-top-width:1px;
height:150px;width:120px'>
</span></a>
Run Code Online (Sandbox Code Playgroud)
我正在给height:150px;width:120px
图像的样式,使其大小缩略图.该图像的实际高度和宽度非常大.问题是,当邮件进入Outlook收件箱时,不会采用这种方式.所以我的问题是 -
1)如何使css工作以设置高度和宽度.
2)Windown实时邮件中的图像显得模糊.当我成功修复高度和宽度的风格时,我不确定它是否会坚持前景.那怎么能解决这个问题呢
我在用Outlook 2003
.
发送电子邮件(通过Outlook 2003
)使用的最佳方式是什么Python
?