小编Jon*_*Jon的帖子

从C#发送附带附件的电子邮件,附件在Thunderbird中作为第1.2部分到达

我有一个C#应用程序,它使用SMTP通过Exchange 2007服务器通过电子邮件发送Excel电子表格报告.这些适用于Outlook用户,但对于Thunderbird和Blackberry用户,附件已重命名为"第1.2部分".

我发现这篇文章描述了这个问题,但似乎没有给我一个解决方法.我无法控制Exchange服务器,因此无法在那里进行更改.我能在C#端做什么吗?我尝试过对身体使用短文件名和HTML编码,但两者都没有区别.

我的邮件发送代码就是这样:

public static void SendMail(string recipient, string subject, string body, string attachmentFilename)
{
    SmtpClient smtpClient = new SmtpClient();
    NetworkCredential basicCredential = new NetworkCredential(MailConst.Username, MailConst.Password);
    MailMessage message = new MailMessage();
    MailAddress fromAddress = new MailAddress(MailConst.Username);

    // setup up the host, increase the timeout to 5 minutes
    smtpClient.Host = MailConst.SmtpServer;
    smtpClient.UseDefaultCredentials = false;
    smtpClient.Credentials = basicCredential;
    smtpClient.Timeout = (60 * 5 * 1000);

    message.From = fromAddress;
    message.Subject = subject;
    message.IsBodyHtml = false;
    message.Body = body;
    message.To.Add(recipient);

    if …
Run Code Online (Sandbox Code Playgroud)

c# email smtp attachment

100
推荐指数
4
解决办法
28万
查看次数

避免在sqlalchemy函数中使用样板会话处理代码

我有一个python应用程序,它有很多小的数据库访问功能,使用sqlalchemy.我试图避免在这些函数周围有很多样板会话处理代码.

我有很多功能,看起来像这样:

def get_ticket_history(Session, ticket_id):
    s = Session()
    try:
        rows = s.query(TicketHistory)\
                .filter(TicketHistory.ticket_fk==ticket_id)\
                .order_by(TicketHistory.id.desc()).all()
        s.commit()
        return rows
    except:
        s.rollback()
        raise
    finally:
        s.close()
Run Code Online (Sandbox Code Playgroud)

我试图重构这些功能,但不确定我还有最好的方法.我目前最好的是以下内容:

def execute(Session, fn, *args, **kwargs):
    s = Session()
    try:
        ret = fn(s, *args, **kwargs)
        s.commit()
        return ret
    except:
        s.rollback()
        raise
    finally:
        s.close()

def get_ticket_history(self, ticket_id):
    def sql_fn(s):
        return s.query(TicketHistory)\
                .filter(TicketHistory.ticket_fk==ticket_id)\
                .order_by(TicketHistory.id.desc()).all()
    return execute(self.sentinel_session, sql_fn)
Run Code Online (Sandbox Code Playgroud)

这样做有更好或更惯用的方法吗?也许使用装饰师?

谢谢,乔恩

python session sqlalchemy

19
推荐指数
3
解决办法
6663
查看次数

将Java BigDecimal舍入到最近的间隔

我有一个BigDecimal计算结果,我需要舍入到最近的指定区间(在这种情况下,它是金融市场的标记大小).

例如价格[Tick Size] - > Rounded Price

100.1 [0.25] -> 100
100.2 [0.25] -> 100.25
100.1 [0.125] -> 100.125
100.2 [0.125] -> 100.25
Run Code Online (Sandbox Code Playgroud)

谢谢.

更新:schnaader的解决方案,翻译成Java/BigDecimal术语:

price = price.divide(tick).setScale(0, RoundingMode.HALF_UP).multiply(tick)
Run Code Online (Sandbox Code Playgroud)

java rounding bigdecimal intervals

15
推荐指数
1
解决办法
6246
查看次数

如何从Excel VBA宏获取UTC的当前日期时间

Excel VBA宏中有没有办法以UTC格式获取当前日期时间?

我可以打电话Now()来获取当地时区的当前时间; 有没有通用的方法然后将其转换为UTC?

谢谢

excel timezone datetime vba excel-vba

13
推荐指数
4
解决办法
6万
查看次数

选择group by子句中的前n行

我有类似于以下的架构:

create table bar
(
    instrument varchar(255) not null,
    bar_dttm datetime not null,
    bar_open int not null,
    bar_close int not null
)
Run Code Online (Sandbox Code Playgroud)

我想查询表,并返回每个仪器最近的5行.

我可以通过仪器来做,有:

select top 5 instrument, bar_dttm, bar_open, bar_close
from bar
where instrument = 'XXX'
order by bar_dttm desc
Run Code Online (Sandbox Code Playgroud)

我想在一次查询中同时为所有仪器执行此操作.这可能吗?我正在运行SQL Server 2008.

sql sql-server

10
推荐指数
2
解决办法
7115
查看次数

我可以使用SQL Server标识列来确定插入的行顺序吗?

我需要能够确定哪些行已插入表中的顺序(没有更新).我可以使用标识列来执行此操作吗?我知道可能存在差距,但保证按插入顺序增加值?

sql-server identity

7
推荐指数
1
解决办法
584
查看次数

如何在PostgreSQL中查询索引的元数据

我需要能够查询PostgreSQL数据库以获取有关索引的信息及其详细信息.

在SQL Server上,我可以执行以下操作来获取所有索引的所有表/索引/列的列表:

select TABLE_NAME, INDEX_NAME, NON_UNIQUE, COLUMN_NAME
from INFORMATION_SCHEMA.STATISTICS
where TABLE_SCHEMA = 'my_schema'
order by TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX
Run Code Online (Sandbox Code Playgroud)

似乎INFORMATION_SCHEMA的STATISTICS表是SQL Server扩展.如何在PostgreSQL中执行等效操作?

编辑:我特别试图返回一个非规范化的结果集,如下所示

TableName, IndexName, UniqueFl, ColumnName
Run Code Online (Sandbox Code Playgroud)

所以我为所有索引中的每一列都返回一行.

谢谢,乔恩

postgresql schema metadata

5
推荐指数
2
解决办法
1万
查看次数

单个Java正则表达式中的条件替换

我有一些字母 - 数字字符形式的符号,后跟一个数字.这个数字是一年,我需要扩展到两位数年份,其中9年成为09年,任何其他年份都以1为前缀.

例如:

GCZ0 -> GCZ10
GCZ1 -> GCZ11
...
GCZ8 -> GCZ18
GCZ9 -> GCZ09
Run Code Online (Sandbox Code Playgroud)

我正在玩,([A-Z]+)([9+])([0-9]+)但我不知道如何让替换有条件地包括正确的0或1前缀.

一个正则表达的大师能指出我正确的方向吗?出于不幸的原因,我需要在单个Java正则表达式匹配/替换中执行此操作.

谢谢,乔恩

java regex

1
推荐指数
1
解决办法
1488
查看次数